38592


`CustomToggleButton`は`ToggleButton`を継承しています：

[code]

    class CustomToggleButton : ToggleButton {
    
        static CustomToggleButton() {
            CustomToggleButton.DefaultStyleKeyProperty.OverrideMetadata(
                typeof(CustomToggleButton), new FrameworkPropertyMetadata(typeof(CustomToggleButton)));
        }
    
        // 省略   
    }
    
[/code]

`ToggleButtonCommon`は`CustomToggleButton`用基本設定のスタイルであり、`InGroupToggleButton`スタイルは`ToggleButtonCommon`を継承しています：

[code]

    <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>
    
[/code]

上記ですと、`ToggleButtonCommon`スタイルを利用できますが、`InGroupToggleButton`は利用できません：

[code]

    <local:CustomToggleButton Style="{StaticResource InGroupToggleButton}"/>
    
[/code]

警告メッセージ：

[![画像の説明をここに入力](https://i.stack.imgur.com/a0sE5.png)](https://i.stack.imgur.com/a0sE5.png)

どうしても`InGroupToggleButton`を使いたいなら、手がありますでしょうか。


CC BY-SA 3.0
2017-10-11T03:02:04.897
38581
2017-10-11T20:51:13.530
2017-10-11T20:51:13.530
19110
16876
question
c# wpf xaml
継承されたコントロールに継承されたスタイルを使う


>
[code]

>     <Style x:Key="InGroupToggleButton" BasedOn="{StaticResource
> ToggleButtonCommon}">
>         <Setter Property="Control.Margin" Value="5 5 5 0" />
>     </Style>
>  
[/code]

ここに`TargetType="{x:Type local:CustomToggleButton}"`を指定する必要があります。


CC BY-SA 3.0
2017-10-11T06:19:56.440
38592
2017-10-11T06:19:56.440
5750
38581
answer