2010-06-12 3 views
0

Je cherche à voir s'il y a un moyen de changer la couleur d'un bloc de texte dans Silverlight sur la souris. J'ai essayé un déclencheur que je lis maintenant ne fonctionne pas. Je voudrais éviter d'avoir à le faire dans le codebehind si possible.Comment colorer textblock sur la souris?

Répondre

2

Votre instinct de ne pas utiliser le code derrière pour cet événement est un bon. Permettez-moi de l'affiner cependant: Ne modifiez pas les visuels du code-behind, mais permettez à votre ViewModels/Code-Behind de posséder l'état visuel du contrôle.

La solution consiste ici à encapsuler les modifications visuelles spécifiques dans un état visuel personnalisé et à appeler cet état visuel à partir d'un ViewModel ou d'un Blend EventTrigger & GoToStateAction.

Pour en savoir plus sur VisualStateManager je vous recommande fortement de regarder ces 4 « Comment puis-je » les vidéos de Steve White @http://expression.microsoft.com/en-us/cc643423.aspx

Pour en savoir plus sur le GoToStateBehavior voir @http://blogs.msdn.com/b/expression/archive/2010/02/22/switching-visual-states-easily-using-gotostateaction.aspx

+0

Légende, il jette un oeil à ces soirs! – deanvmc

-1

Vous pouvez définir un style de déclenchement :

<TextBlock Text="Blah"> 
    <TextBlock.Style> 
     <Style TargetType="{x:Type TextBlock}"> 
      <Style.Triggers> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="Green" /> 
        <Setter Property="Foreground" Value="Black" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 
+0

Comme l'OP fait allusion à cela ne fonctionne pas dans Silverlight. – AnthonyWJones

+0

Ouais, c'est dommage mais ça ne marche pas! – deanvmc

Questions connexes