using PixiEditor.Views; using System.Diagnostics; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using Xceed.Wpf.Toolkit.Zoombox; namespace PixiEditor.Helpers.Behaviours { public class MouseBehaviour : System.Windows.Interactivity.Behavior { public static readonly DependencyProperty MouseYProperty = DependencyProperty.Register( "MouseY", typeof(double), typeof(MouseBehaviour), new PropertyMetadata(default(double))); public double MouseY { get { return (double)GetValue(MouseYProperty); } set { SetValue(MouseYProperty, value); } } public static readonly DependencyProperty MouseXProperty = DependencyProperty.Register( "MouseX", typeof(double), typeof(MouseBehaviour), new PropertyMetadata(default(double))); public double MouseX { get { return (double)GetValue(MouseXProperty); } set { SetValue(MouseXProperty, value); } } protected override void OnAttached() { AssociatedObject.MouseMove += AssociatedObjectOnMouseMove; } private void AssociatedObjectOnMouseMove(object sender, MouseEventArgs mouseEventArgs) { var pos = mouseEventArgs.GetPosition(AssociatedObject); MouseX = pos.X; MouseY = pos.Y; } protected override void OnDetaching() { AssociatedObject.MouseMove -= AssociatedObjectOnMouseMove; } } }