dnSpy.Text.Editor.MouseLocation.Create C# (CSharp) Method

Create() public static method

public static Create ( IWpfTextView wpfTextView, System.Windows.Input.MouseEventArgs e, bool insertionPosition ) : MouseLocation
wpfTextView IWpfTextView
e System.Windows.Input.MouseEventArgs
insertionPosition bool
return MouseLocation
		public static MouseLocation Create(IWpfTextView wpfTextView, MouseEventArgs e, bool insertionPosition) {
			ITextViewLine textViewLine;
			VirtualSnapshotPoint position;

			var point = GetTextPoint(wpfTextView, e);
			var line = wpfTextView.TextViewLines.GetTextViewLineContainingYCoordinate(point.Y);
			if (line != null)
				textViewLine = line;
			else if (point.Y <= wpfTextView.ViewportTop)
				textViewLine = wpfTextView.TextViewLines.FirstVisibleLine;
			else
				textViewLine = wpfTextView.TextViewLines.LastVisibleLine;
			if (insertionPosition)
				position = textViewLine.GetInsertionBufferPositionFromXCoordinate(point.X);
			else
				position = textViewLine.GetVirtualBufferPositionFromXCoordinate(point.X);

			return new MouseLocation(textViewLine, position, point);
		}

Usage Example

Esempio n. 1
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            if (mouseCaptured)
            {
                var mouseLoc = MouseLocation.Create(wpfTextViewHost.TextView, e, insertionPosition: false);
                var line     = mouseLoc.TextViewLine;
                editorOperations.SelectLine(line, true);
                // Needed or the scrolling will stop
                if (mouseLoc.Point.Y <= wpfTextViewHost.TextView.ViewportTop)
                {
                    editorOperations.ScrollUpAndMoveCaretIfNecessary();
                }
                else if (mouseLoc.Point.Y >= wpfTextViewHost.TextView.ViewportBottom)
                {
                    var lastVisLine = wpfTextViewHost.TextView.TextViewLines.LastVisibleLine;
                    if (!lastVisLine.IsLastDocumentLine() || lastVisLine.VisibilityState != VisibilityState.FullyVisible)
                    {
                        editorOperations.ScrollDownAndMoveCaretIfNecessary();
                    }
                }
                e.Handled = true;
                return;
            }

            base.OnMouseMove(e);
        }
All Usage Examples Of dnSpy.Text.Editor.MouseLocation::Create