1

Dans ma demande, je voudrais créer une ligne de fading qui a GradientStop s avec des couleurs du système, je suis en train de le faire comme ceci:Fixer les couleurs du système à LinearGradientBrush

<UserControl.Resources> 
    <Style x:Key="Divider" TargetType="Rectangle"> 
     <Setter Property="Height" Value="2" /> 
     <Setter Property="Fill"> 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 
        <GradientStop Color="{StaticResource PhoneChromeBrush}" Offset="0.0" /> 
        <GradientStop Color="{StaticResource PhoneInverseBackgroundBrush}" Offset="1.0" /> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</UserControl.Resources> 

Mais lorsque je tente de projet de compilation je reçois l'erreur suivante:

A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll 
An exception of type 'System.Windows.Markup.XamlParseException' occurred in System.Windows.ni.dll but was not handled in user code 

Que dois-je faire pour résoudre ce problème?

Répondre

3

GradientStop.Color attend une couleur, pas une brosse. Utilisez PhoneChromeColor et PhoneInverseBackgroundColor à la place:

<UserControl.Resources> 
    <Style x:Key="Divider" TargetType="Rectangle"> 
     <Setter Property="Height" Value="2" /> 
     <Setter Property="Fill"> 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 
        <GradientStop Color="{StaticResource PhoneChromeColor}" Offset="0.0" /> 
        <GradientStop Color="{StaticResource PhoneInverseBackgroundColor}" Offset="1.0" /> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</UserControl.Resources> 
0

Je ne suis pas certain, mais il semble que vous définissiez une couleur statique comme un pinceau. C'est difficile à dire puisque vous n'avez jamais posté le code sur votre ressource statique pour 'PhoneChromeBrush' ou 'PhoneInverseBackgroundBrush'. Mais vous définissez des arrêts de dégradé avec ceux-ci et si ce sont des dégradés eux-mêmes qui peuvent casser votre code. Habituellement, vous réserve « brosse » pour un gradient j'étais pas certain:

pourriez-vous pas faire quelque chose comme:

<UserControl.Resources> 

<LinearGradientBrush x:Key="MoneyBrush" EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="#3A883A" Offset="1" /> 
       <GradientStop Color="#FFFFFF" Offset="0" /> 
       <GradientStop Color="#FF53AA75" Offset="0.50" /> 
       <GradientStop Color="#073307" Offset="0.95" /> 
      </LinearGradientBrush> 
     <Style x:Key="Divider" TargetType="Rectangle"> 
      <Setter Property="Height" Value="2" /> 
      <Setter Property="Fill" Value="{StaticResource MoneyBrush}"/> 
     </Style> 
    </UserControl.Resources> 
+0

'' PhoneChromeBrush' et PhoneInverseBackgroundBrush' sont prédéfinies dans l'application de WP8 et ils ne sont pas dégradés mais pinceaux de couleur unie. – Anton

Questions connexes