Ellipse possède une propriété appelée IsMouseOver, que nous pouvons utiliser pour définir la couleur de l'ellipse, tout comme le fait this post. Mais en pratique, lorsque la souris est sur ellipse, le trait sera changé (l'image que nous dessinons ellipse comme un cercle), lorsque la souris est à l'intérieur de l'ellipse (cercle), la couleur revient à la valeur d'origine. Je sais ellipse a un événement appelé MouseEnter, nous pouvons utiliser EventTrigger, mais seulement StoryBoard peut être défini dans EventTrigger.Définir le trait elliptique (couleur de la bordure) lorsque la souris y entre en wpf
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10*" />
<ColumnDefinition Width="90*" />
</Grid.ColumnDefinitions>
<Ellipse x:Name="checkButton" Grid.Column="0" Stroke="Black"></Ellipse>
<TextBlock x:Name="txtContent" Grid.Column="1" FontWeight="Bold" VerticalAlignment="Center" FontSize="14" HorizontalAlignment="Center" TextAlignment="Center">
<ContentPresenter />
</TextBlock>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard></BeginStoryboard>
// something like <Setter Property="Stroke" Value="Red" /> here
</EventTrigger>
</ControlTemplate.Triggers>
Tout ce que je veux, c'est que MouseEnter se produise, régler le contour de l'ellipse; lorsque MouseLeave se produit, réglez-le. Est-ce que quelqu'un a une idée?
Merci d'avance!
Voir ma réponse et dire pourquoi il est faux? – AnjumSKhan
@AnjumSKhan en fait votre réponse est correcte, et c'est la réponse la plus élégante parmi ces réponses, cela fonctionne, il n'a pas besoin de Blend SDK, et c'est un peu hacky ~ :) P.S. En fait, le résultat est un peu différent de ce à quoi je m'attendais, mais j'ai modifié le code pour le rendre correct, j'ai déjà posté un commentaire sous votre réponse, veuillez vérifier.:) – user1108069