如何从Extended WPF Toolkit中禁用Avalon Dock中的选项卡?

时间:2015-05-07 18:26:04

标签: c# wpf avalondock

我正在回顾一段时间,并设置属性以绑定到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>

1 个答案:

答案 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>