2009-02-06 17 views
37

Mam plik MainResources.xaml w którym mam styl, który określa, jak każdy z moich okien w moim wyglądzie aplikacji:W stylu XAML, jak zmienić tło stałe na gradient?

<Style x:Key="MainBorderStyle" TargetType="{x:Type Border}"> 
    <Setter Property="Background" Value="WhiteSmoke" /> 
    <Setter Property="BorderBrush" Value="LightGray" /> 
    <Setter Property="BorderThickness" Value="1" /> 
    <Setter Property="CornerRadius" Value="5" /> 
    <Setter Property="SnapsToDevicePixels" Value="True" /> 
    </Style> 

Zamiast „whiteSmoke” Chcę moje tło będzie to gradient:

<LinearGradientBrush> 
     <GradientStop Color="#ccc" Offset="0"/> 
     <GradientStop Color="#bbb" Offset="1"/> 
    </LinearGradientBrush> 

Ale po próba powoduje VS2008 mi powiedzieć „ustawiaczy stylów nie obsługuje elementów podrzędnych”:

<Style x:Key="MainBorderStyle" TargetType="{x:Type Border}"> 
    <Setter Property="Background"> 
     <LinearGradientBrush> 
      <GradientStop Color="#ccc" Offset="0"/> 
      <GradientStop Color="#bbb" Offset="1"/> 
     </LinearGradientBrush> 
    </Setter> 
    <Setter Property="BorderBrush" Value="LightGray" /> 
    <Setter Property="BorderThickness" Value="1" /> 
    <Setter Property="CornerRadius" Value="5" /> 
    <Setter Property="SnapsToDevicePixels" Value="True" /> 
</Style> 

Jaki jest c or rect way, aby ustawić kolor gradientu jako tło dla tego stylu?

Odpowiedz

73

Ty brakuje <Setter.Value>

<Style ...> 
    <Setter Property="..."> 
     <Setter.Value> 
     <LinearGradientBrush /> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

doskonały, dzięki! –