4
我有一個使用ElementHost的WinForms控件內託管的WPF控件。 WinForms控件有一個上下文菜單。我想在用戶右鍵單擊WPF控件時顯示上下文菜單。如何才能做到這一點?看起來鼠標事件不是從WPF冒泡到WinForms。從WPF到WinForms的泡泡鼠標事件
我有一個使用ElementHost的WinForms控件內託管的WPF控件。 WinForms控件有一個上下文菜單。我想在用戶右鍵單擊WPF控件時顯示上下文菜單。如何才能做到這一點?看起來鼠標事件不是從WPF冒泡到WinForms。從WPF到WinForms的泡泡鼠標事件
它不會自動冒泡,因爲您可能在第一時間在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;
....