どのようにそれを交換せずにControlTemplateの視覚的な状態を変更するには?
-
11-09-2019 - |
質問
私はむしろ、押されたボタンのデフォルトの外観よりも、チェックを(たとえば)赤フォアグラウンドで表示されますToggleButton
を定義したい。
私は視覚的な状態がToggleButton
のControlTemplate
内部という名前の要素として維持されていることがわかります。
テンプレート全体を再定義しなくても視覚的な状態をカスタマイズ/削除/交換する最も簡単な方法は何ですか?
解決
私は、これは非常に遅れている実感が、私はちょうど自分自身を同じ問題に遭遇し、解決策を考え出したので、うまくいけば、これは誰かに有用であろう。
テンプレートが(最初の小節/表示サイクル後)制御に適用した後、、あなたは単にVisualTreeHelper.GetChild (myToggleButton, 0)
を使用してインスタンス化されたテンプレートとその子コンポーネントにアクセスすることができます - これは、インスタンス化されたテンプレートのビジュアルツリーのルートオブジェクトを返します、そこから、あなたはその子コレクションに子オブジェクトを変更/追加/削除することができます。
もちろん、あなたが唯一のの制御ではなく、テンプレートリソース自体ののインスタンスの表示状態を変更している、同じテンプレートから作成されたので、新しいコントロールがまだ元の外観を持つことになります。
このテーマに関する私のrealtedの質問はここにある:?どのように私はの
他のヒント
唯一のあなたが必要なものに変化しますが、その後、独自のControlTemplate
を作成しようとした標準にBasedOn
パラメータを設定していますか?
所属していません StackOverflow