我正在Silverlight中构建应用程序,此时我遇到了事件问题。 在应用程序中,我必须绘制多边形,其中每个多边形
polygon.MouseLeftButtonUp += MouseButtonEventHandler_MouseLeftButtonUp;
polygon.MouseRightButtonUp += MouseButtonEventHandler_MouseRightButtonUp;
鼠标左键事件的位置应该在单击的位置添加图像,鼠标右键事件应该显示上下文菜单和单个菜单项。在菜单项上单击应显示一些简短信息。
这是我遇到问题的地方。 当我从上下文菜单中单击某个项目时,如果该菜单项仍然在多边形代码上,则还检测鼠标左键事件并添加图像。
我想在单击菜单项时不添加图像,只是为了显示简短信息。
任何帮助,建议?
答案 0 :(得分:0)
当连接鼠标按钮事件时,MouseButtonEventHandler有MouseButtonEventArgs,这将允许您确定单击了哪个鼠标按钮:
private void MouseButtonDownHandler(object sender, MouseButtonEventArgs e)
{
Control src = e.Source as Control;
if (src != null)
{
switch (e.ChangedButton)
{
case MouseButton.Left:
// do something
break;
case MouseButton.Middle:
// do something
break;
case MouseButton.Right:
// do something
break;
case MouseButton.XButton1:
// do something
break;
case MouseButton.XButton2:
// do something
break;
default:
break;
}
}
}
在您的情况下,当您检测到用鼠标左键处理程序单击鼠标右键时,取消该事件。对于鼠标左键处理程序,反之亦然。