如何从WPF控件引用父窗体

use*_*949 7 wpf winforms

我使用elementhost来承载Windows窗体中的WPF用户控件.我想知道如何在WPF控件中引用父窗体.

Tho*_*que 16

这是一种方法,在WPF UserControl中有一个按钮:

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        var source = (HwndSource)PresentationSource.FromDependencyObject(button1);
        var host = (Forms.Integration.ElementHost)Forms.Control.FromChildHandle(source.Handle);
        var form = (Forms.Form)host.TopLevelControl;
        // Show form title
        MessageBox.Show(form.Text);
    }
Run Code Online (Sandbox Code Playgroud)

(在此代码中Forms是别名System.Windows.Forms)


Col*_*inE 3

为什么不以编程方式创建这种关系呢?即,当您将 WPF 用户控件添加到元素宿主中时,请将用户控件的 Tag 属性设置为元素宿主实例。

科林·E。