在MaterialDesign中隐藏选项卡TabablzControl

时间:2019-10-07 20:56:55

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

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

有人知道如何实现吗?

1 个答案:

答案 0 :(得分:0)

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

一种解决方法是使用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}}">