2009-06-11 63 views
1

我正在尝试将WPF用户控件添加到现有的WinForms项目中,并使WPF UserControl停靠并填充整个空间。与ElementHost对接

有一个当前的框架将WinForms UserControls加载到父窗体(进入面板)以响应按钮单击。这是我试图挂钩 - 当前正在加载的WinForms UserControl将具有ElementHost。

层次:

  • Form1.cs中 - 包含一个面板,其获取动态加载
    • 的WinForms用户控件的WinForms用户控件 - 包含ElementHost的
      • WPF用户控件

ElementHost将Dock设置为Fill及其儿童属性设置为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> 

的用户控件的内容不垂直扩展当我调整的形式,但水平时,内容只能扩展到足以容纳其内容。

当我在设计器中查看WinForms UserControl(具有ElementHost的)时,问题很明显。指定的WPF内容正在渲染,并且从顶部到底部填充,但不是从左到右。

我很想知道,它是在XAML中必须设置(可能在UserControl声明?)来获得它来填充它的父容器,这是ElementHost - 我找不到属性。

有人能给我启发吗?

回答

3

将Horizo​​ntalAlignment更改为Stretch或完全清除它。

+0

看在老天的份上。当然。谢谢。 – 2009-06-11 15:57:01