1

のスタイルを定義し、とButtonBaseのさまざまな方法でそのスタイルを拡張したいと考えています。私はこのようなものが欲しい:TogglebuttonButton

<!-- Base Style -->
<Style x:Key="ButtonBaseStyle" TargetType="ButtonBase">
    <Style.Resources>
      <ControlTemplate x:Key="NormalStyle" TargetType="ButtonBase">...</ControlTemplate>
      <ControlTemplate x:Key="HoverStyle" TargetType="ButtonBase">...</ControlTemplate>
    </Style.Resources>
    <Style.Triggers>
      <Trigger Property="IsMouseOver" Value="True">
         <Setter Property="Template" Value="{StaticResource HoverStyle}" />
      </Trigger>
      <Trigger Property="IsMouseOver" Value="False">
         <Setter Property="Template" Value="{StaticResource NormalStyle}" />
      </Trigger>
    </Style.Triggers>
</Style> 

<!-- Toggle Button -->
<Style x:Key="ToggleButtonStyle" TargetType="ToggleButton" BasedOn="ButtonBaseStyle">
    <Style.Resources>
       <ControlTemplate x:Key="CheckedStyle" TargetType="ToggleButton">...</ControlTemplate>
    </Style.Resources>
    <Style.Triggers>
      <!-- ToggleButton should inherit the triggers defined in ButtonBaseStyle; adding the additional trigger specific to ToggleButton here -->
      <Trigger Property="IsChecked" Value="True">
         <Setter Property="Template" Value="{StaticResource CheckedStyle}" />
      </Trigger>
    </Style.Triggers>
 </Style>

のスタイル宣言ToggleButtonが間違っています。WPFスタイルをそのように継承することはできません。他の方法でこの効果を達成できるかどうか知りたいです。コントロール テンプレートをグローバルにして、さまざまなボタン クラスに対して選択的に使用できることを認識していることに注意してください。それが私が今していることですが、それを避けたいと思います。

4

1 に答える 1