鼠标左键单击和菜单项之间的冲突单击

时间:2014-02-09 22:07:17

标签: c# .net silverlight events

我正在Silverlight中构建应用程序,此时我遇到了事件问题。 在应用程序中,我必须绘制多边形,其中每个多边形

polygon.MouseLeftButtonUp += MouseButtonEventHandler_MouseLeftButtonUp;
polygon.MouseRightButtonUp += MouseButtonEventHandler_MouseRightButtonUp;

鼠标左键事件的位置应该在单击的位置添加图像,鼠标右键事件应该显示上下文菜单和单个菜单项。在菜单项上单击应显示一些简短信息。

这是我遇到问题的地方。 当我从上下文菜单中单击某个项目时,如果该菜单项仍然在多边形代码上,则还检测鼠标左键事件并添加图像。

我想在单击菜单项时不添加图像,只是为了显示简短信息。

任何帮助,建议?

1 个答案:

答案 0 :(得分:0)

当连接鼠标按钮事件时,MouseButtonEventHandlerMouseButtonEventArgs,这将允许您确定单击了哪个鼠标按钮:

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;
        }
    }
}

在您的情况下,当您检测到用鼠标左键处理程序单击鼠标右键时,取消该事件。对于鼠标左键处理程序,反之亦然。