ツールバーにボタンを配置すると、ツールバーの要素に合わせてスタイルが自動的に変更されます。
ToggleButton から独自のクラスを派生させたので、ツールバーでインスタンス化すると、再び通常のボタンのように見えます。テンプレート全体を最初から再作成する必要がないように、WPF の組み込みテンプレートにアクセスするにはどうすればよいですか?
どうやら ToolBar には、 および を含むいくつかのコントロール用に定義されたリソースがButton
ありToggleButton
ます。このスタイルは、ツールバーのメタデータで見つけることができ、ターゲット タイプの各コントロールに適用されます。したがって、スタイルを取得して自分で適用できます。
<ToolBar>
<my:CustomToggleButton
Height="100" Width="100"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"
Content="Press me!" />
</ToolBar>
多くのボタンがあり、それぞれにスタイルを設定したくない場合は、カスタム コントロールのコード ビハインドでスタイルを設定できます。
および/またはOnApplyTemplate
を使用して、オーバーライドでテンプレートの変更にアクセスできます。VisualTreeHelper
LogicalTreeHeler
style
このようにカスタム トグル ボタンにを適用して、ツールバーのトグル ボタンのように見せることができます -
<local:LockableToggleButton LockToggle="True" Content="Test"
Style="{StaticResource {x:Static ToolBar.ToggleButtonStyleKey}}"/>