我正在回顾一段时间,并设置属性以绑定到LayoutItem上的可见性和其他属性。我可以将它们设置为visibile或不是,但现在我想禁用选项卡。我的风格与IsEnabled绑定,但现在我没有看到LayoutItem类中的属性。所以我想我可能会在探索ToolKit时添加它。但现在我正在使用在线发现的Nuget包,我无法找到一种方法来禁用面板的选项卡。任何想法,一种禁用我的标签的方法?
<templateselectors:PanesStyleSelector>
<templateselectors:PanesStyleSelector.FileStyle>
<Style TargetType="{x:Type avalonDock:LayoutItem}">
<Setter Property="IsEnabled" Value="{Binding IsEnabled, Mode=TwoWay}"></Setter>
<Setter Property="Title" Value="{Binding Model.Title}"/>
<Setter Property="IconSource" Value="{Binding Model.IconSource}"/>
<Setter Property="ContentId" Value="{Binding Model.ContentId}"/>
<Setter Property="CloseCommand" Value="{Binding Model.CloseCommand}"/>
<Setter Property="CanClose" Value="True"/>
<Setter Property="IsSelected" Value="{Binding Model.IsSelected, Mode=TwoWay}"/>
<Setter Property="IsActive" Value="{Binding Model.IsActive, Mode=TwoWay}"/>
<Setter Property="Visibility" Value="{Binding Model.IsVisible, Mode=TwoWay, Converter={StaticResource BoolToVisibilityConverter}, ConverterParameter={x:Static Visibility.Hidden}}"/>
<Setter Property="Height" Value="100"/>
</Style>
</templateselectors:PanesStyleSelector.FileStyle>
</templateselectors:PanesStyleSelector>
答案 0 :(得分:1)
刚刚在我的Avalon Dock模组中尝试过。将以下代码段添加到我自己的AvalonDock主题中,它允许禁用单个选项卡。
对于演示,我使用了LayoutDocument的IsSelected
属性,因为当然没有IsEnabled
。
<Style x:Key="DocumentPaneControlStyle" TargetType="{x:Type avalonDockControls:LayoutDocumentPaneControl}">
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="{x:Type TabItem}">
<Setter Property="IsEnabled" Value="{Binding IsSelected}"/>
</Style>
</Setter.Value>
</Setter>
</Style>