WPF Tabcontrol占用最大选项卡的大小

Zep*_*pee 7 c# wpf tabcontrol

我有一个TabControl绑定到Viewmodels的集合,它被转换成适合绘制到选项卡中的适当的:

<Window.Resources>
    <ResourceDictionary>
        <DataTemplate DataType="{x:Type charting:LineFormatViewModel}">
            <charting:LineFormatView />
        </DataTemplate>
        <DataTemplate DataType="{x:Type charting:IndexSettingsViewModel}">
            <charting:IndexSettingsView />
        </DataTemplate>
        ....
    </ResourceDictionary>
</Window.Resources>

<TabControl ItemSource="Binding ViewModels" />
Run Code Online (Sandbox Code Playgroud)

我一直试图找到一种方法来始终在任何一个孩子的最大宽度和高度绘制TabControl.让WPF Tabcontrol高度假设最大项目的高度?提到了几种在答案中实现这一点的方法(来自我所理解的):

  • 使用带有SharedSizeGroup的Grid - 似乎需要在TabControl的实际内容上应用于DataTemplate,它会覆盖由资源字典中创建的VM-> View映射实现的自动View图形
  • 使用宽度/高度转换器,这需要我的TabControl绑定到UI元素的集合而不是viewmodels

有没有人有解决类似问题的经验?每当我在这方面取得一些进展时,我似乎都会碰到更多的墙壁.

小智 0

您需要使用命名的隐藏控件,这些控件可以自动适应并创建对其宽度/高度的直接绑定,例如:

 Width="{Binding ActualWidth, ElementName=MainGrid}"
Run Code Online (Sandbox Code Playgroud)