代码之家  ›  专栏  ›  技术社区  ›  Paul Prewett

与elementhost对接

  •  1
  • Paul Prewett  · 技术社区  · 15 年前

    我正在尝试将wpf用户控件添加到现有的winforms项目中,并让wpf用户控件停靠并填充整个空间。

    当前有一个框架,它将winforms用户控件加载到父窗体(加载到面板中)以响应按钮单击。这就是我要挂接的地方-当前正在加载的winforms用户控件将具有elementhost。

    等级制度:

    • form1.cs-包含一个面板,用于动态加载winforms用户控件
      • winforms usercontrol-包含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>
    

    当我调整窗体的大小时,UserControl的内容确实是垂直展开的,但是水平展开时,内容只会扩展到足以容纳其内容的程度。

    当我在设计器中查看winforms用户控件(具有elementhost的用户控件)时,问题很明显。指定的WPF内容将被呈现并从上到下填充,但不是从左到右填充。

    我认为在XAML中必须设置一些内容(可能在UserControl声明中?)为了让它填充它的父容器,它是elementHost——我只是找不到属性。

    有人能启发我吗?

    1 回复  |  直到 15 年前
        1
  •  3
  •   Ana Betts    15 年前

    将水平标记更改为拉伸或完全消除它。