XAML中的Permenant样式更改

时间:2016-10-04 03:50:59

标签: 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 个答案:

答案 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中完成的线索。