void StrokeWindowMouseMove(object sender, MouseEventArgs e) { Views.Test.TestWindow.AddMessage("Stroke: Mouse Move"); if (!_magicArrowIsShown && !_isInZone && StrokeWindow.PositionIsOk(_movedOutSide, Cursor.Position.X, WpfScreen.MostLeftX - 2, WpfScreen.MostRightX)) { _isInZone = true; Point p = e.GetPosition(_strokeWindow); var screen = WpfScreen.GetScreenFrom(p); ShowMagicArrow(p.Y + screen.WorkingArea.Top, _movedOutSide); } _mouseWasOver = true; }
void MagicWindow_MouseLeave(object sender, MouseEventArgs e) { Views.Test.TestWindow.AddMessage("Magic Arrow: Mouse Leave"); if (StrokeWindow.PositionIsOk(_movedOutSide, Cursor.Position.X, 2 - WpfScreen.MostLeftX, WpfScreen.MostRightX)) { if (_strokeWindow != null) { _strokeWindow.SetLeft(_movedOutSide == Side.Left ? WpfScreen.MostLeftX : WpfScreen.MostRightX - 1, _movedOutSide); } HideMagicArrow(); } else { _strokeWindow.SetLeft(_movedOutSide == Side.Left ? WpfScreen.MostLeftX : WpfScreen.MostRightX - 1, _movedOutSide); } }