我为网格设置了一个简单的样式:
<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#中执行此操作?
答案 0 :(得分: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中完成的线索。