WPFのTabItemは、可視性隠されたコンテンツコントロールを設定します

MSDNの問題から。

思考は非常に短い答えです。

TabControlコントロールを表示するので唯一のTabItemの項目を選択しました。

したがって、制御またはトリガーを備えた別個の制御のTabItemが動作不能です。

のみのControlTemplate。

次のようにキーコードは次のようになります。

<スタイルX:キー= " C1 " TargetTypeに= " のTabItem " > 
            <Style.Triggers> 
                < - -关键代码可以多写一个隠された!> 
                    <Da​​taTriggerバインド= " {バインディング可視性、RelativeSource = {RelativeSourceモード=セルフ}} "値= " 縮小" > 
                    <setterプロパティ= " ContentTemplate " > 
                        <Setter.Value> 
                            <Da​​taTemplateを> 
                                <ContentControlに可視性= 折りたたみコンテンツ= " {バインディング} " /> 
                            </ DataTemplateを> 
                        </Setter.Value> 
                    </セッター> 
                </ DataTrigger> 
                <! -关键代码- > 
                <Da​​taTriggerバインド= " {バインディング可視性、RelativeSource = {RelativeSourceモード=自己}} "値= " 可視" > 
                    <setterプロパティ= " ContentTemplate " > 
                        <Setter.Value>  
                            <Da​​taTemplateを>
                                <ContentControlに可視性= 目に見えますコンテンツ= " {バインディング} " /> 
                            </ DataTemplateを> 
                        </Setter.Value> 
                    </セッター> 
                </ DataTrigger> 
            </Style.Triggers> 
        </スタイル>

フリップフロッププロパティに設定された制御データによって検出されたのTabItemのvisibility属性。

完全なコード

<Window.Resources> 
        <スタイルX:キー= " C1 " TargetTypeに= " のTabItem " > 
            <Style.Triggers> 
                <! -关键代码可以多写一个隠さ- > 
                    <Da​​taTriggerバインド= " {バインディング可視性、RelativeSource = {RelativeSourceモード=自動}} "値= " 縮小" > 
                    <setterプロパティ= " ContentTemplate " > 
                        <Setter.Value> 
                            <Da​​taTemplateを>
                                <ContentControlに可視性= "崩壊"コンテンツ= " {バインディング} " /> 
                            </ DataTemplateを> 
                        </Setter.Value> 
                    </セッター> 
                </ DataTrigger> 
                <! -关键代码- > 
                <Da​​taTriggerバインド= " {バインディング可視性、RelativeSource = { RelativeSourceモード=自己}} "値= " 可視" > 
                    <setterプロパティ= " ContentTemplate " > 
                        <Setter.Value>
                            <Da​​taTemplateを>
                                <ContentControlに可視性= "可視"コンテンツ= " {バインディング} " /> 
                            </ DataTemplateを> 
                        </Setter.Value> 
                    </セッター> 
                </ DataTrigger> 
            </Style.Triggers> 
        </スタイル> 
        <スタイルX:キー= " T1 " BASEDON = " {StaticResourceのC1} " TargetTypeに= " のTabItem " > 
            <Style.Triggers> 
                <Da​​taTriggerバインド= " {バインディングのElementName = CB1、パス=にisChecked} "値= "" > 
                    <setterプロパティ= " 可視"値= " 縮小" /> 
                </ DataTrigger> 
            </Style.Triggers> 
        </スタイル> 
        <スタイルX:キー= " T2 " BASEDON = " {StaticResourceのC1} " TargetTypeに= " のTabItem " > 
            <Style.Triggers> 
                <Da​​taTriggerバインド= " {バインディングのElementName = CB2、PATH =にisChecked} >"値= " " 
                    <setterプロパティ= " 可視化"値= " 折りたたみ" /> 
                </ DataTrigger> 
            </Style.Triggers> 
        </スタイル> 
    </Window.Resources> 
    <グリッド> 
        <Grid.ColumnDefinitions> 
            <ColumnDefinition幅= " オート" /> 
            <ColumnDefinition幅= " * " /> 
        </Grid.ColumnDefinitions> 
        <StackPanel> 
            <CheckBoxのX:名= "CB1 " > 
                <CheckBox.Content> 
                    <テキストブロック> 
                        <ランテキスト= " アイテム1状态:" /> 
                        <ランテキスト= " {バインディングのElementName = ITEM1、PATH =可視、MODE =一方向} " /> 
                    </のTextBlock> 
                </CheckBox.Content> 
            </チェックボックス> 
            <CheckBoxのX:名= " CB2 " > 
                <CheckBox.Content> 
                    <TextBlockの> 
                        <ファイル名を指定して実行テキスト= " アイテム2状态:" />
                        <ファイル名を指定して実行テキスト= "{バインディングのElementName = ITEM2、PATH =可視、MODE =一方向} " /> 
                    </のTextBlock> 
                </CheckBox.Content> 
            </チェックボックス> 
        </のStackPanel> 
        <タブコントロールGrid.Column = " 1 "   > 
            <のTabItemヘッダー= " ITEM1 " X:NAME = " ITEM1 "   スタイル= " {StaticResourceのT1} " > 
                 
                <グリッド背景= " " > 
                    
                </グリッド> 
            </のTabItem> 
            <のTabItemのヘッダー= "ITEM2 "   X:NAME = " ITEM2 "スタイル= " {StaticResourceさt2} " > 
                <グリッド背景= " " > 

                </グリッド> 
            </のTabItem> 
        </タブコントロール> 
    </グリッド>

スクリーンショット

おすすめ

転載: www.cnblogs.com/T-ARF/p/11528551.html