0

我正在尝试在我的 winform 上托管一个 wpf 控件(gridview)。

我正在使用 elementHost 在我的 winform 上创建 wpf 控件。

每当我想向我的 wpf 控件添加行时,如何创建一个事件?

4

2 回答 2

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 回答
0

将您的网格视图包装在用户控件中并处理用户控件中的事件。请注意,当您托管 wpf 控件时,将不会调用某些事件。适用于我的解决方案:在加载时和 elementhost 获得焦点时将焦点设置为您的用户控件

于 2015-11-18T07:37:23.070 回答