【问题标题】:Conflicts between Mouse Left Button click and Menu Item Click鼠标左键单击和菜单项单击之间的冲突
【发布时间】:2014-02-14 04:44:58
【问题描述】:

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

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

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

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

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

有什么帮助、建议吗?

【问题讨论】:

    标签: c# .net silverlight events


    【解决方案1】:

    当连接鼠标按钮事件时,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;
            }
        }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多