MSDNの問題から。
思考は非常に短い答えです。
TabControlコントロールを表示するので唯一のTabItemの項目を選択しました。
したがって、制御またはトリガーを備えた別個の制御のTabItemが動作不能です。
のみのControlTemplate。
次のようにキーコードは次のようになります。
<スタイルX:キー= " C1 " TargetTypeに= " のTabItem " > <Style.Triggers> < - -关键代码可以多写一个隠された!> <DataTriggerバインド= " {バインディング可視性、RelativeSource = {RelativeSourceモード=セルフ}} "値= " 縮小" > <setterプロパティ= " ContentTemplate " > <Setter.Value> <DataTemplateを> <ContentControlに可視性= 「折りたたみ」コンテンツ= " {バインディング} " /> </ DataTemplateを> </Setter.Value> </セッター> </ DataTrigger> <! -关键代码- > <DataTriggerバインド= " {バインディング可視性、RelativeSource = {RelativeSourceモード=自己}} "値= " 可視" > <setterプロパティ= " ContentTemplate " > <Setter.Value> <DataTemplateを> <ContentControlに可視性= 「目に見えます」コンテンツ= " {バインディング} " /> </ DataTemplateを> </Setter.Value> </セッター> </ DataTrigger> </Style.Triggers> </スタイル>
フリップフロッププロパティに設定された制御データによって検出されたのTabItemのvisibility属性。
完全なコード
<Window.Resources> <スタイルX:キー= " C1 " TargetTypeに= " のTabItem " > <Style.Triggers> <! -关键代码可以多写一个隠さ- > <DataTriggerバインド= " {バインディング可視性、RelativeSource = {RelativeSourceモード=自動}} "値= " 縮小" > <setterプロパティ= " ContentTemplate " > <Setter.Value> <DataTemplateを> <ContentControlに可視性= "崩壊"コンテンツ= " {バインディング} " /> </ DataTemplateを> </Setter.Value> </セッター> </ DataTrigger> <! -关键代码- > <DataTriggerバインド= " {バインディング可視性、RelativeSource = { RelativeSourceモード=自己}} "値= " 可視" > <setterプロパティ= " ContentTemplate " > <Setter.Value> <DataTemplateを> <ContentControlに可視性= "可視"コンテンツ= " {バインディング} " /> </ DataTemplateを> </Setter.Value> </セッター> </ DataTrigger> </Style.Triggers> </スタイル> <スタイルX:キー= " T1 " BASEDON = " {StaticResourceのC1} " TargetTypeに= " のTabItem " > <Style.Triggers> <DataTriggerバインド= " {バインディングのElementName = CB1、パス=にisChecked} "値= "真" > <setterプロパティ= " 可視"値= " 縮小" /> </ DataTrigger> </Style.Triggers> </スタイル> <スタイルX:キー= " T2 " BASEDON = " {StaticResourceのC1} " TargetTypeに= " のTabItem " > <Style.Triggers> <DataTriggerバインド= " {バインディングの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> </タブコントロール> </グリッド>
スクリーンショット