ElementHost を使用して WinForms コントロール内でホストされている WPF コントロールがあります。WinForms コントロールにはコンテキスト メニューがあります。ユーザーが WPF コントロールを右クリックしたときにコンテキスト メニューを表示したい。これはどのように行うことができますか?マウス イベントが WPF から WinForms にバブリングされていないようです。
質問する
2180 次
1 に答える
4
最初に 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;
....
于 2011-06-25T03:28:24.587 に答える