首页 > 解决方案 > 如何为 WPF 数据网格单元格做闪烁的矩形轮廓?

问题描述

基本上我有一个 WPF 数据网格,我想通过绑定将闪烁的轮廓添加到 XAML 中的特定单元格,这将使其可见。我知道如何做到这一点,除了闪烁的部分。

我该怎么做才能使矩形轮廓闪烁特定的持续时间(例如 2 秒),因此它从不透明度 = 0 变为 1,然后变为 0,依此类推。

WPF 有这个机制吗?

    <Border BorderThickness="1" BorderBrush="Red">
        <Rectangle Fill="#FF5A9AE0"
                   Stretch="UniformToFill"
                   ClipToBounds="True"/>
    </Border>

标签: c#.netwpfanimationdatagrid

解决方案


这将使边框闪烁。

    <Border Name="MyBorder" BorderThickness="1" BorderBrush="Red">
        <Border.Triggers>
            <EventTrigger RoutedEvent="Border.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <ThicknessAnimationUsingKeyFrames
                            Storyboard.TargetName="MyBorder" 
                            Storyboard.TargetProperty="BorderThickness"
                            AutoReverse="True" RepeatBehavior="Forever">
                            <DiscreteThicknessKeyFrame KeyTime="0:0:00.00" Value="1" />
                            <DiscreteThicknessKeyFrame KeyTime="0:0:00.25" Value="5" />
                            <DiscreteThicknessKeyFrame KeyTime="0:0:00.50" Value="1" />
                        </ThicknessAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Border.Triggers>
        <Rectangle Fill="#FF5A9AE0" Stretch="UniformToFill" ClipToBounds="True" />
    </Border>

有很多动画选项,因此请查看https://docs.microsoft.com/en-us/dotnet/desktop/wpf/graphics-multimedia/animation-overview?view=netframeworkdesktop-4.8了解详细信息/想法.


推荐阅读