我在ScrollViewer中有一个Canvas; Canvas将在其上绘制几个对象
我希望能够使用鼠标平移滚动 - 画布:LButtonDown - 移动鼠标 - LButtonUp。
在.xaml中,我有一个Canvas的TranslateTransform
代码:
private void MapCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
ClickPosition = e.GetPosition(MapCanvas);
Debug.WriteLine("LButtonDown: " + ClickPosition.ToString());
MapCanvas.CaptureMouse();
IsMouseCaptured = true;
e.Handled = true;
}
private void MapCanvas_MouseMove(object sender, MouseEventArgs e)
{
if (IsMouseCaptured)
{
Point point = new Point(e.GetPosition(MapCanvas));
Debug.WriteLine("\t" + point.ToString());
MapPanTransform.X = point.X - ClickPosition.X;
MapPanTransform.Y = point.Y - ClickPosition.Y;
}
}
这导致MapCanvas_MouseMove中出现一些奇怪的点:
LButtonDown 557,469
556469个
368472
555469个
367472
554469个
365472
553,469
有关正在发生的事情的任何想法? 感谢。
答案 0 :(得分:0)
是否有任何控件覆盖您尝试移动的画布?您可以查看isHitTestVisible属性。如果我理解正确,它会使控件上的鼠标事件透明,以便所有事件发生在控件“下方”的控件上,其中isHitTestVisible为false。