public void MouseDeviceCaptureTest() { Border child1 = new Border { Background = Brushes.Transparent, Width = 100, Height = 100 }; Border child2 = new Border { Background = Brushes.Transparent, Width = 100, Height = 100 }; Border child3 = new Border { Background = Brushes.Transparent, Width = 100, Height = 100 }; StackPanel panel = new StackPanel { IsRootElement = true }; panel.Children.Add(child1); panel.Children.Add(child2); MouseEventArgs lastArgs = null; panel.MouseMove += (sender, e) => lastArgs = e; TestPresentationSource presentationSource = new TestPresentationSource(); presentationSource.RootElement = panel; panel.Measure(Size.Infinity); panel.Arrange(new Rect(panel.DesiredSize)); MouseDevice mouseDevice = new MouseDevice(presentationSource); mouseDevice.Activate(); mouseDevice.ProcessRawEvent(new RawMouseEventArgs(new Point(50, 50), 0)); Assert.AreEqual(child1, lastArgs.Source); Assert.AreEqual(child1, mouseDevice.HitTarget); Assert.AreEqual(null, mouseDevice.CaptureTarget); Assert.AreEqual(child1, mouseDevice.Target); mouseDevice.ProcessRawEvent(new RawMouseEventArgs(new Point(50, 150), 0)); Assert.AreEqual(child2, lastArgs.Source); Assert.AreEqual(child2, mouseDevice.HitTarget); Assert.AreEqual(null, mouseDevice.CaptureTarget); Assert.AreEqual(child2, mouseDevice.Target); mouseDevice.Capture(child2); mouseDevice.ProcessRawEvent(new RawMouseEventArgs(new Point(50, 50), 0)); Assert.AreEqual(child2, lastArgs.Source); Assert.AreEqual(child1, mouseDevice.HitTarget); Assert.AreEqual(child2, mouseDevice.CaptureTarget); Assert.AreEqual(child2, mouseDevice.Target); mouseDevice.ReleaseCapture(); mouseDevice.ProcessRawEvent(new RawMouseEventArgs(new Point(50, 50), 0)); Assert.AreEqual(child1, lastArgs.Source); Assert.AreEqual(child1, mouseDevice.HitTarget); Assert.AreEqual(null, mouseDevice.CaptureTarget); Assert.AreEqual(child1, mouseDevice.Target); }
private void CaptureMouse() { if (!_mouseCaptured) { _mouseDevice.Capture(_wpfTextView.VisualElement); _mouseCaptured = true; _scrollTimer.IsEnabled = true; } }
//</SnippetMouseClickCountDoubleClick> private void CaptureMouseOnMouseEnter(object sender, MouseEventArgs e) { MouseDevice mDevice = e.MouseDevice; bool captureResult; captureResult = mDevice.Capture(captureTarget); if (captureResult == true) { captureTarget.BorderBrush = Brushes.Red; } }
protected virtual bool BeginDragOperation(InputDevice deviceToCapture, Point initialDragPosition) { // This is a helper method that provides for easy dragging of the // LoopPanel's Offset using the Mouse. It can be overridden to provide // support for other input devices like a Surface Contact. bool result = false; if (CapturedDevice == null) { _lastDragPosition = initialDragPosition; if (deviceToCapture is MouseDevice) { MouseDevice md = deviceToCapture as MouseDevice; if (md.Captured != null) { md.Captured.ReleaseMouseCapture(); } // By default, we support dragging via the left mouse button. // If another button is required for dragging, this method should be overridden. if (md.Captured == null && md.LeftButton == MouseButtonState.Pressed) { CapturedDevice = md; md.Capture(this); result = true; } } else if (deviceToCapture is TouchDevice) { TouchDevice td = deviceToCapture as TouchDevice; if (td.Captured != null) { this.ReleaseTouchCapture(td); } // By default, we support dragging via the left touch button. // If another button is required for dragging, this method should be overridden. if (td.Captured == null) { CapturedDevice = td; td.Capture(this); result = true; } } } return(result); }
public void Capture_Is_Cleared_When_Control_Removed() { Canvas control; var root = new TestRoot { Child = control = new Canvas(), }; var target = new MouseDevice(); target.Capture(control); Assert.Same(control, target.Captured); root.Child = null; Assert.Null(target.Captured); }
void ReleaseMouse() { mouseDevice?.Capture(null); _tabContext.Left = _tabContext.OX; _tabContext.Top = _tabContext.OY; }
void ReleaseMouse() { mouseDevice?.Capture(null); _tabContext.X = _tabContext.Y = _tabContext.Radius; }