我正在尝试将 WPF 用户控件添加到现有的 WinForms 项目并让 WPF 用户控件停靠并填充整个空间。
当前有一个框架将 WinForms UserControls 加载到父窗体(到面板中)以响应按钮单击。这就是我试图加入的地方 - 当前正在加载的 WinForms UserControl 将具有 ElementHost。
等级制度:
- Form1.cs - 包含一个动态加载 WinForms UserControls 的面板
- WinForms UserControl - 包含 ElementHost
- WPF 用户控件
ElementHost 将 Dock 设置为 Fill 并将其 Child 属性设置为 ucReport,这是一个 WPF 用户控件,具有以下标记(仅包括顶级设计):
<UserControl x:Class="MyClassName"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TabControl HorizontalAlignment="Left" Name="tabControl1">
<TabItem Header="Header1">
...The interesting stuff goes here
</TabItem>
</TabControl>
</UserControl>
当我调整表单大小时,UserControl 的内容确实会垂直扩展,但在水平方向上,内容只会扩展得足够大以容纳其内容。
当我在设计器中查看 WinForms UserControl(具有 ElementHost 的那个)时,问题很明显。指定的 WPF 内容正在呈现,并且从上到下填充,而不是从左到右填充。
我认为必须设置 XAML 中的某些内容(可能在 UserControl 声明中?)以使其填充它的父容器,即 ElementHost - 我只是找不到该属性。
有人会启发我吗?