2010-12-03 26 views
0

dans mon Silverlight-Application, je veux changer l'arrière-plan de mon bouton en passant la souris. J'ai fait un style pour mon bouton et changé le MouseOver-VisualState:Silverlight: Modification de l'arrière-plan sur MouseOver

<VisualState x:Name="MouseOver"> 
    <Storyboard> 
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Background)" Storyboard.TargetName="BorderBackground"> 
     <DiscreteObjectKeyFrame KeyTime="0"> 
      <DiscreteObjectKeyFrame.Value> 
       <Background>{TemplateBinding BorderBrush}</Background> 
      </DiscreteObjectKeyFrame.Value> 
     </DiscreteObjectKeyFrame> 
    </ObjectAnimationUsingKeyFrames> 
    </Storyboard> 
</VisualState> 

qui ne fonctionne pas parce que « Le nom « Contexte »n'existe pas dans l'espace de noms « http://schemas.microsoft.com/ client/2007 ". ' Une idée, comment je peux passer le Background-Brush à Border-Brush en passant la souris sans le faire avec le code derrière et les événements appropriés?

Merci à l'avance,
Frank

Répondre

1

Background est une propriété de Control pas UIElement ce qui explique pourquoi il ne fonctionne pas.

Source

Vous aurez besoin d'utiliser les éléments suivants:

... Storyboard.TargetProperty="(Control.Background)" ... 
+0

Merci pour votre réponse! Malheureusement, il me dit toujours que le nom "Background" n'existe pas dans l'espace de noms "http://schemas.microsoft.com/client/2007". ' (La ligne d'écoute est {TemplateBinding BorderBrush} ligne, btw.) Si je tape explicitement {TemplateBinding BorderBrush} il me dit que les propriétés imbriquées ne sont pas supportées – Aaginor

+0

ne fonctionne pas car je ne peux pas utiliser Binding dans VisualStateManager. – Aaginor