首页 > 解决方案 > 在 MaterialDesign Tabablz TabablzControl 中隐藏选项卡

问题描述

我想将 TabItem 的可见性属性绑定到我的视图模型中的 bool 属性(通过转换器,true=visible false=collapsed),但 TabItem 上的可见性属性不会隐藏选项卡。我不想隐藏所有选项卡,只隐藏单个选项卡。

有谁知道如何做到这一点?

标签: material-designtabcontrolmaterial-design-in-xaml

解决方案


我想要类似的东西。我询问了开发人员,但 Dragablz(即 Tabablz)无法做到这一点。在 dragablz 中不使用 TabItem 本身。

一种解决方法是使用 materialdesign 单选按钮作为选项卡标题而不是 dragablz。单选按钮可以折叠。

<StackPanel Orientation="Horizontal" Margin="4">
   <RadioButton x:Name="FirstTab" Style="{StaticResource MaterialDesignTabRadioButton}" Margin="4" Visibility="Collapsed" IsChecked="True" Content="FIRST" />
   <RadioButton Style="{StaticResource MaterialDesignTabRadioButton}" Margin="4" IsChecked="False" Content="SECOND" />
   <RadioButton Style="{StaticResource MaterialDesignTabRadioButton}" Margin="4" IsChecked="False" Content="THIRD" />
</StackPanel>

现在您只需在它们下方创建一些网格,它们的可见性绑定到相应单选按钮的 IsChecked 属性。这样,您可以只显示绑定到当前选定单选按钮的网格。您需要一个 bool2visibility 转换器,也许 wpf 附带的默认转换器可以工作(我的示例中的转换器是自定义转换器)。

<Grid Visibility="{Binding IsChecked, Source={x:Reference FirstTab}, Converter={StaticResource Bool2VisibilityConverter}}">

推荐阅读