【问题标题】:Bubble mouse event from WPF to WinForms从 WPF 到 WinForms 的气泡鼠标事件
【发布时间】:2011-06-25 02:59:28
【问题描述】:

我使用 ElementHost 在 WinForms 控件中托管 WPF 控件。 WinForms 控件有一个上下文菜单。当用户右键单击 WPF 控件时,我想显示上下文菜单。如何才能做到这一点?似乎鼠标事件没有从 WPF 冒泡到 WinForms。

【问题讨论】:

    标签: wpf mouse event-bubbling elementhost


    【解决方案1】:

    它不会自动冒泡,因为您可能首先在 WPF 控件中处理了它。但是,您可以自己轻松地添加它。

    在您的 WPF 用户控件中,公开您在鼠标右键上触发的事件:

        public event Action ShowContext;
    
        private void rectangle1_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
        {
            if (ShowContext != null)
            {
                ShowContext();
            }
        }
    

    然后在带有元素主机的 winforms 控件中,您可以像这样使用它:

        public UserControl1 WpfControl { get; set; }
    
        public Form1()
        {
            InitializeComponent();
    
            WpfControl = new UserControl1();
            WpfControl.ShowContext += () => contextMenuStrip1.Show(Cursor.Position);
            elementHost1.Child = WpfControl;
         ....
    

    【讨论】:

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