public MainWindow() { InitializeComponent(); impl = new CozyQuick.Engine.EngineImpl(); impl.Init(); var mousedown = Observable.FromEventPattern<MouseButtonEventArgs>(CozyObj, "MouseLeftButtonDown") .Select(x => x.EventArgs.GetPosition(CozyObj)); var mouseup = Observable.FromEventPattern<MouseButtonEventArgs>(this, "MouseLeftButtonUp"); var mousemove = Observable.FromEventPattern<MouseEventArgs>(this, "MouseMove") .Select(x => x.EventArgs.GetPosition(this)); var q = from start in mousedown from end in mousemove.TakeUntil(mouseup) select new { X = end.X - start.X, Y = end.Y - start.Y }; q.Subscribe(value => { Canvas.SetLeft(CozyObj, value.X); Canvas.SetTop(CozyObj, value.Y); }); }
public MainWindow() { InitializeComponent(); impl = new CozyQuick.Engine.EngineImpl(); impl.Init(); var mousedown = Observable.FromEventPattern <MouseButtonEventArgs>(CozyObj, "MouseLeftButtonDown") .Select(x => x.EventArgs.GetPosition(CozyObj)); var mouseup = Observable.FromEventPattern <MouseButtonEventArgs>(this, "MouseLeftButtonUp"); var mousemove = Observable.FromEventPattern <MouseEventArgs>(this, "MouseMove") .Select(x => x.EventArgs.GetPosition(this)); var q = from start in mousedown from end in mousemove.TakeUntil(mouseup) select new { X = end.X - start.X, Y = end.Y - start.Y }; q.Subscribe(value => { Canvas.SetLeft(CozyObj, value.X); Canvas.SetTop(CozyObj, value.Y); }); }