我有一个绑定到 Viewmodel 集合的 TabControl,这些 Viewmodel 被转换为适当的值以绘制到选项卡中:
<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" />
我一直在尝试找到一种方法来始终以它的任何子项的最大宽度和高度绘制 TabControl。让 WPF Tabcontrol 高度假定最大项目的高度? https://stackoverflow.com/questions/1073770/let-wpf-tabcontrol-height-assume-height-of-largest-item在答案中提到了实现这一目标的几种方法(根据我的理解):
- 使用 Grid 和 SharedSizeGroup - 似乎需要应用于 TabControl 实际内容上的 DataTemplate,这会覆盖通过在资源字典中创建的 VM->View 映射实现的自动视图绘制
- 使用宽度/高度转换器,这需要将我的 TabControl 绑定到 UI 元素集合而不是视图模型
有没有人有解决类似问题的经验?每当我在这方面取得一些进展时,我似乎都会遇到更多的困难。
您需要使用可以自动适应的命名隐藏控件
创建对其宽度/高度的直接绑定,如下所示:
Width="{Binding ActualWidth, ElementName=MainGrid}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)