1

我正在尝试将 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 - 我只是找不到该属性。

有人会启发我吗?

4

1 回答 1

3

将 Horizo​​ntalAlignment 更改为 Stretch 或完全摆脱它。

于 2009-06-11T15:56:03.143 回答