#c# #wpf #xaml
#c# #wpf #xaml
Вопрос:
У меня есть простой стиль, настроенный для сетки:
<Style TargetType="Grid" x:Key="Block">
<Setter Property="Background" Value="#363636" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#555555" />
</Trigger>
</Style.Triggers>
</Style>
Таким образом, сетка возвращается к своему обычному цвету фона, когда мышь уходит. Но я стремлюсь к тому, чтобы цвет фона сетки постоянно оставался на # 555555 после того, как мышь покинет сетку. Могу ли я сделать это с помощью XAML или это нужно делать на C #?
Комментарии:
1. Анимация имеет более высокий приоритет, поэтому вы должны идти этим путем.
Ответ №1:
Вы можете сделать это, используя EventTrigger
вместо обычного.
В следующем примере я проиллюстрирую, как это делается:
<Grid Background="#363636">
<Grid.Resources>
<Storyboard x:Key="OnMouseEnter">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="Background.Color" >
<DiscreteColorKeyFrame KeyTime="0" Value="#555555"></DiscreteColorKeyFrame>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</Grid.Resources>
<Grid.Triggers>
<EventTrigger RoutedEvent="UIElement.MouseEnter">
<BeginStoryboard Storyboard="{StaticResource OnMouseEnter}"/>
</EventTrigger>
</Grid.Triggers>
</Grid>
Это может дать вам представление о том, как это можно сделать в чистом XAML.
Комментарии:
1. спасибо, я посмотрю и дам вам знать, как это работает!