C# WPF未出现在WinForms中的ElementHost中

C# WPF未出现在WinForms中的ElementHost中,c#,wpf,winforms,xaml,visual-studio-2012,C#,Wpf,Winforms,Xaml,Visual Studio 2012,我正在构建一个WinForms应用程序,并试图在其中包含一个WPF应用程序。所讨论的WPF是HighCore编写的日志查看器,可在此处找到:。 我学习了如何设置一切的教程。需要注意的是,当我在VS中展开ElementHost的选项时,它不会在“选择托管内容”下拉列表中显示日志查看器。然而,日志查看器在我的项目中(我通过“项目”菜单创建了它),因此我最终使用了以下代码: public MainForm() { InitializeComponent(); logViewer

我正在构建一个WinForms应用程序,并试图在其中包含一个WPF应用程序。所讨论的WPF是HighCore编写的日志查看器,可在此处找到:。
我学习了如何设置一切的教程。需要注意的是,当我在VS中展开ElementHost的选项时,它不会在“选择托管内容”下拉列表中显示日志查看器。然而,日志查看器在我的项目中(我通过“项目”菜单创建了它),因此我最终使用了以下代码:

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

     this.Controls.Add(elementHost1);
     elementHost.BringToFront();
  }
我添加了
BringToFront()
,因为我在第一次运行代码时没有看到WPF。现在,情况是这样的:

但是,我的VS designer中的内容如下所示:

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

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

删除这一行: this.Controls.Add(elementHost1)


您正在将elementHost添加到您表格的子项列表中

+1,因为您提到了我的解决方案=)@HighCore我对WPF非常陌生,仍在尝试了解您的解决方案。我不知道如何从我的主WinForm中填充
LogEntries
(而且没有足够的代表对您的答案发表评论!grr)。例如,我无法获得
日志条目
(我也查看了)。也许你可以解释或编辑你的答案?或者这应该是一个问题本身。是的,你可能应该为这个问题创建一个单独的问题
LogEntries
是一个简单的ObservableCollection,您应该将其与WPF UI(可能是ViewModel的一部分)分开,并从外部(winforms或其他)操作ViewModel。您几乎不需要在过程代码中操纵WPF UI。