【发布时间】:2010-09-22 20:32:16
【问题描述】:
我一直在尝试为 WPF 中的 TabControl 创建自定义外观/模板。
我希望选项卡显示在 ComboBox 中。当您从 ComboBox 中选择项目时,我希望选项卡控件的内容区域显示 TabItem 内容。
这是一张显示我正在寻找的图片:
我可以使用带有数据对象和模板的某种主从设置来完成此操作,但问题是我想使用 TabControl XAML 格式设置控件,如下所示:
<TabControl Style="{DynamicResource ComboTabControlStyle}">
<TabItem Header="TabItem1">
<TextBlock Text="TabItem1 Content!" FontSize="18.667" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</TabItem>
<TabItem Header="TabItem2">
<TextBlock Text="TabItem2 Content!" FontSize="18.667" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</TabItem>
<TabItem Header="TabItem3">
<TextBlock Text="TabItem3 Content!" FontSize="18.667" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</TabItem>
</TabControl>
有什么想法或建议吗?
使用不同的 Panel 更改选项卡项的布局非常容易,但 ComboBox 是 ItemsControl,而不是 Panel。
我尝试将 ComboBox 放入 TabControl 模板并将 ComboBox 的 ItemsSource 绑定到 TabControl.Items 属性,但它似乎无法正常工作。
我还尝试创建一个自定义面板,该面板一次只显示一个“选定”项目,并在您单击它时在下拉列表中显示所有项目(基本上是一个“组合框”面板)。我遇到了麻烦,因为视觉效果只能在视觉树中的一个地方。因此,将面板的子项放入弹出窗口会引发异常。
有人有其他想法吗?
感谢您的帮助!
【问题讨论】:
标签: wpf templates combobox tabcontrol