2010-02-11 34 views
2

我使用XAML樣式使用自己的圖像創建自定義單選按鈕。該樣式使用觸發器根據焦點更改按鈕的外觀,壓,等這裏的風格:XAML樣式 - 如何在覆蓋觸發的設置器時使用BasedOn

<Style x:Key="SmallButtonAsRadioButton" TargetType="RadioButton"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
    <Setter Property="SnapsToDevicePixels" Value="True" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="RadioButton"> 
       <Grid x:Name="Container"> 
        <Image x:Name="img" Source="/Resources/Elements/Buttons/10.png" Margin="6" /> 
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsKeyboardFocused" Value="True"> 
         <Setter TargetName="img" Property="Source" Value="/Resources/Elements/Buttons/11.png" /> 
         <Setter TargetName="img" Property="Margin" Value="0" /> 
        </Trigger> 
        <MultiTrigger> 
         <MultiTrigger.Conditions> 
          <Condition Property="IsKeyboardFocused" Value="True" /> 
          <Condition Property="IsChecked" Value="True" /> 
         </MultiTrigger.Conditions> 
         <Setter TargetName="img" Property="Source" Value="/Resources/Elements/Buttons/12.png" /> 
        </MultiTrigger> 
        <MultiTrigger> 
         <MultiTrigger.Conditions> 
          <Condition Property="IsKeyboardFocused" Value="False" /> 
          <Condition Property="IsChecked" Value="True" /> 
         </MultiTrigger.Conditions> 
         <Setter TargetName="img" Property="Source" Value="/Resources/Elements/Buttons/12a.png" /> 
         <Setter TargetName="img" Property="Margin" Value="6" /> 
        </MultiTrigger> 
        <Trigger Property="IsPressed" Value="True"> 
         <Setter TargetName="img" Property="Source" Value="/Resources/Elements/Buttons/12.png" /> 
         <Setter TargetName="img" Property="Margin" Value="0" /> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

我需要建立在此基礎上,使用不同圖像的新風格。顯然,我想重用這種風格,但我不知道如何覆蓋這些圖像設置器。例如:

<Style x:Key="SmallButtonAsRadioButtonBlue" BasedOn="{StaticResource SmallButtonAsRadioButton}" TargetType="RadioButton"> 
    <Setter - (Override image... 
    <Setter - (Override image... 

任何洞察力的讚賞。

回答

1

你可以做的是從你自己的自定義控件中的單選按鈕派生出來的圖像作爲屬性。那麼你不必重寫樣式(你可以只定義一次),並且每次你想使用不同的圖像時,都可以在xaml中設置它們。 (或一種風格 - 不用重做控制模板,只需使用setter)

相關問題