2009-12-02 51 views
3

我有一個橢圓定義爲這樣DataTrigger /風格快速在XAML

<Ellipse Stroke="#FF474747" Style="{StaticResource SelectedTemplate}" Fill="{StaticResource RedGradient}" /> 

我也有兩種風格的設置,像這樣

<RadialGradientBrush x:Key="RedGradient" GradientOrigin="1,1"> 
    <GradientStop Color="White"/> 
    <GradientStop Color="Red" Offset="1"/> 
</RadialGradientBrush> 

<RadialGradientBrush x:Key="GreenGradient" GradientOrigin="1,1"> 
    <GradientStop Color="White"/> 
    <GradientStop Color="Green" Offset="1"/> 
</RadialGradientBrush> 

現在,當橢圓先繪製它是紅色的每RedGradientBrush。我想使橢圓形的綠色時,綁定值(部分)是真實的,所以我說一個樣式做這個

<Style x:Key="SelectedTemplate" TargetType="Ellipse"> 
    <Style.Triggers> 
     <DataTrigger Value="True" Binding="{Binding Selected}"> 
      <Setter Property="Stroke" Value="White" /> 
      <Setter Property="StrokeThickness" Value="5" /> 
      <Setter Property="Fill" Value="{StaticResource GreenGradient}" /> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 

現在,選擇時,也真只有StrokeThickness變化,沒有別的?任何人都可以幫忙嗎?

謝謝

回答

2

顯然XAML內聯樣式會覆蓋您設置的任何內容。這就是爲什麼只有StrokeThickness被更改,因爲它沒有內聯。