我有一个WPF窗口,里面有一个WindowsFormsHost对象。理想情况下,我想在窗口处于活动状态时访问WindowsForm控件。
我可以注册一个名称或类似于WindowsFormsHost控件所需的名称,然后执行以下操作:
WindowCollection mainWin = System.Windows.Application.Current.Windows;
在这种特殊情况下,我知道我需要的窗口将始终位于mainWin [2]中,但我不确定如何直接访问WindowsFormsHost对象以向其添加Winform控件。
答案 0 :(得分:0)
伪代码,您将需要一个带有公共属性的MyWindow类,在此窗口中公开名称为MyWindowsFormsHost的WindowsFormsHost控件。
WindowCollection mainWin = System.Windows.Application.Current.Windows;
MyWindow win = (MyWindow)mainWin[2];
win.MyWindowsFormsHost.Child = MyNewControl;
答案 1 :(得分:0)
我想这就是你想要实现的目标:
XAML
<WindowsFormsHost Name="host"></WindowsFormsHost>
代码
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
var txb = new System.Windows.Forms.TextBox();
host.Child = txb ;
host.Child = new System.Windows.Forms.DataGrid();
}