WPF 呼吸灯闪烁效果

<Style x:Key="OuterGlowStyle" TargetType="{x:Type FrameworkElement}">
            <Setter Property="Effect">
                <Setter.Value>
                    <DropShadowEffect x:Name="OG" BlurRadius="0" Color="Tomato" Direction="0"
 Opacity="0.6" RenderingBias="Performance" ShadowDepth="0">
                        <Storyboard.TargetProperty>
                            BlurRadius
                        </Storyboard.TargetProperty>
                    </DropShadowEffect>
                </Setter.Value>
            </Setter>
            <Style.Triggers>
                <EventTrigger RoutedEvent="GotFocus">
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetProperty="(FrameworkElement.Effect).
(DropShadowEffect.BlurRadius)" BeginTime="00:00:00" From="0" To="10" Duration="00:00:01" AutoReverse="True" 
RepeatBehavior="Forever"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Style.Triggers>
        </Style>

所有继承了FrameworkElement的控件都可以使用

image

转载于:https://www.cnblogs.com/A-sync/p/5238900.html

WPF(Windows Presentation Foundation)中,DataGridView是一种用于显示表格数据的用户界面控件。如果你想要实现单元格闪烁效果,通常是在某些操作(如数据更新、输入验证等)完成后,为了吸引用户注意力或者提供反馈而添加的一种视觉提示。这可以通过自定义`DataGridCellEditingEndingEventArgs`事件处理程序来实现。 以下是一个简单的示例,展示如何在编辑结束时让单元格闪烁: ```csharp private void dataGrid_CellEditingEnded(object sender, DataGridCellEditingEndedEventArgs e) { // 获取刚刚编辑过的单元格 DataGridCell editedCell = e.EditedItem as DataGridCell; if (editedCell != null) { // 设置焦点以便看到闪烁效果 editedCell.Focus(); // 定义动画持续时间和颜色变化 Duration animationDuration = new Duration(TimeSpan.FromMilliseconds(500)); SolidColorBrush cellColor = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0)); // 红色 // 创建一个颜色切换动画 Storyboard storyboard = newStoryboard(); ColorAnimation colorAnimation = new ColorAnimation( Storyboard.TargetProperty = FrameworkElement.BackgroundProperty, From = editedCell.Background.Color, To = cellColor.Color, Duration = animationDuration); // 添加动画到故事板并开始播放 storyboard.Children.Add(colorAnimation); storyboard.Begin(e.UpdatedCells[0]); // 当动画结束后,恢复原始背景色 EventHandler completedHandler = null; completedHandler = delegate { editedCell.Background = editedCell.DefaultStyleProperties[BackgroundProperty]; }; storyboard.Completed += completedHandler; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值