0

winform で wpf コントロール (グリッドビュー) をホストしようとしています。

私は elementHost を使用して、winform に wpf コントロールを作成しています。

wpf コントロールに行を追加するときはいつでもイベントを作成するにはどうすればよいですか?

4

2 に答える 2

0

グリッドビューをユーザー コントロールにラップし、ユーザー コントロールでイベントを処理します。wpf コントロールをホストしている場合、一部のイベントが呼び出されないことに注意してください。

于 2015-11-18T07:37:23.070 に答える
0

Winforms で WPF コントロールのイベントをサブスクライブする方法は、他のイベントと同じです。WPF コントロール インスタンスを取得し、コードを次のように使用するだけです。

wpfbutton1.Click += new RoutedEventHandler(wpfbutton1_Click);     

void wpfbutton1_Click(object sender, RoutedEventArgs e)
{
   throw new NotImplementedException();
}

サンプルコード:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        ElementHost host = new ElementHost() { Dock = DockStyle.Fill };
        this.Controls.Add(host);

        System.Windows.Controls.Button wpfButton = 
            new System.Windows.Controls.Button() { Content = "WPF Button" };
        host.Child = wpfButton;

        wpfButton.Click += new         System.Windows.RoutedEventHandler(wpfButton_Click);
    }

    void wpfButton_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        MessageBox.Show("Button is clicked");
    }
}
于 2015-11-18T07:52:55.113 に答える