2009-02-06 5 views
37

J'ai un fichier MainResources.xaml dans lequel j'ai un style qui définit la façon dont chacun de mes fenêtres dans mon application look:Dans le style XAML, comment changer l'arrière-plan uni en dégradé?

<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> 

Au lieu de « WhiteSmoke » Je veux que mon arrière-plan à ce gradient:

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

Mais la tentative suivante provoque VS2008 pour me dire "setters style ne prennent pas en charge les éléments de l'enfant":

<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> 

Quel est le c orrect façon de mettre une couleur de dégradé en arrière-plan pour ce style?

Répondre

73

Il vous manque le <Setter.Value>

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

parfait, merci! –

Questions connexes