我正在尝试将WPF用户控件添加到现有的WinForms项目中,并使WPF UserControl停靠并填充整个空间。
当前框架将WinForms UserControls加载到父表单(进入面板)以响应按钮点击。这是我试图挂钩的地方 - 当前正在加载的WinForms UserControl将具有ElementHost。
层次结构:
ElementHost将Dock设置为Fill并将其Child属性设置为ucReport,这是一个WPF UserControl,它具有以下标记(仅包括顶级设计):
<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 - 我只是找不到属性
有人会启发我吗?
答案 0 :(得分:3)
将HorizontalAlignment更改为Stretch或完全删除它。