我有一个用C#/ WPF编写的图形应用程序。滚动鼠标滚轮可以放大和缩小几何体。
在XAML中我有这个。 。 。
<Canvas Name="ROIcnv" Background ="Transparent" Canvas.Top="0" Canvas.Left="0" Margin="250,60,20,180" MouseDown="ROIcnvMouseDown"
MouseUp="ROIcnvMouseUp" MouseMove="ROIcnvMouseMove" ClipToBounds="True" MouseWheel="ROIcnvMouseWheel" />
处理程序看起来像这样。 。 。
private void ROIcnvMouseWheel(object sender, MouseWheelEventArgs e)
{
double scaleFactor = 1.0;
// If the mouse wheel delta is positive, scale up
if (e.Delta > 0)
{
scaleFactor = scaleFactor * 1.1;
}
// If the mouse wheel delta is negative, scale down
if (e.Delta < 0)
{
scaleFactor = scaleFactor * 0.9;
}
_Scale = _Scale * scaleFactor;
StackTransforms();
} // end ROIcnvMouseWheel
一切正常,除了点击键盘的 Alt 键可以打开和关闭鼠标事件的接收。如果我在处理程序中的调试器中设置了一个断点,那么如果我在滚动之前点击 Alt 键,它就永远不会被调用。再次点击它,一切都很开心。这种情况发生在我试过的所有3台PC上(所有Win 7)。发生了什么,我该如何解决?