継承されたコントロールに継承されたスタイルを使う
CustomToggleButton
はToggleButton
を継承しています:
class CustomToggleButton : ToggleButton {
static CustomToggleButton() {
CustomToggleButton.DefaultStyleKeyProperty.OverrideMetadata(
typeof(CustomToggleButton), new FrameworkPropertyMetadata(typeof(CustomToggleButton)));
}
// 省略
}
ToggleButtonCommon
はCustomToggleButton
用基本設定のスタイルであり、InGroupToggleButton
スタイルはToggleButtonCommon
を継承しています:
<Style x:Key="ToggleButtonCommon"
TargetType="{x:Type local:CustomToggleButton}"
BasedOn="{StaticResource {x:Type ToggleButton}}">
// 省略
</Style>
<Style x:Key="InGroupToggleButton" BasedOn="{StaticResource ToggleButtonCommon}">
<Setter Property="Control.Margin" Value="5 5 5 0" />
</Style>
上記ですと、ToggleButtonCommon
スタイルを利用できますが、InGroupToggleButton
は利用できません:
<local:CustomToggleButton Style="{StaticResource InGroupToggleButton}"/>
警告メッセージ:
どうしてもInGroupToggleButton
を使いたいなら、手がありますでしょうか。