WPF不会出现在WinForms中的ElementHost中

时间:2013-10-25 16:36:36

标签: c# wpf winforms xaml visual-studio-2012

我正在构建一个WinForms应用程序,并尝试在其中包含一个WPF应用程序。有问题的WPF是由HighCore编写的日志查看器,可在此处找到:Implementing a log viewer with WPF 我按照this教程了解了如何设置所有内容。需要注意的一点是,当我在VS中展开ElementHost的选项时,它不会在"选择托管内容&#​​34;中显示日志查看器。落下。然而,日志查看器在我的项目中(我是通过 Project 菜单创建的),所以我最终得到了一些代码:

public MainForm()
  {
     InitializeComponent();
     logViewer tslv = new logViewer();
     elementHost.Child = tslv;

     this.Controls.Add(elementHost1);
     elementHost.BringToFront();
  }

我添加了BringToFront()因为我第一次运行代码时没有看到WPF。现在,这就是:

WPF not in ElementHost bounds

但是,我在我的VS设计师中看到的是这样的:

VS designer view

ElementHost位于SplitContainer中,它本身位于Panel中(这是我在VS设计器图像中选择的)。
WPF并不觉得需要受到ElementHost的维度或位置的约束(可能是它的反叛)。例如,如果我将ElementHost的Dock属性设置为Fill,则WPF将填充整个应用程序窗口,而不仅仅是ElementHost中的空间。

除了将WPF放在自己的窗口中或将WinForms应用程序移植到WPF之外,还有人有任何建议吗?

1 个答案:

答案 0 :(得分:1)

删除此行: this.Controls.Add(elementHost1);

您正在将elementHost读取到表单子项列表

相关问题