WPF里的报警闪烁效果

<esri:MarkerSymbol x:Key="FlashMarkerSymbol" OffsetX="41" OffsetY="41">
<esri:MarkerSymbol.ControlTemplate>
<ControlTemplate>
<Grid Height="81" Width="81">
<Grid.Resources>
<Style TargetType="{x:Type Line}">
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Stroke" Value="Red"/>
<Setter Property="StrokeThickness" Value="1"/>
</Style>
</Grid.Resources>
<Ellipse x:Name="elp1">
<Ellipse.Fill>
<RadialGradientBrush>
<GradientStop Color="#F00" Offset="1"/>
<GradientStop Color="#0FB2" Offset="0"/>
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
<Ellipse Fill="White" Height="11" Stroke="#000" StrokeThickness="1" StrokeDashArray="5,2.95" StrokeDashOffset="6.7" Width="11"/>
<Line X1="31" Y1="40.5" X2="38" Y2="40.5"/>
<Line X1="43" Y1="40.5" X2="50" Y2="40.5"/>
<Line X1="40.5" Y1="31" X2="40.5" Y2="38"/>
<Line X1="40.5" Y1="43" X2="40.5" Y2="50"/>
<Ellipse x:Name="elp2" Cursor="Hand" Height="9" Width="9">
<Ellipse.Fill>
<RadialGradientBrush>
<GradientStop Color="#F00" Offset="1"/>
<GradientStop Color="#FD9" Offset="0"/>
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="elp2">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<DoubleAnimation Storyboard.TargetName="elp1" Storyboard.TargetProperty="Width" From="10" To="80" Duration="0:0:1.5"/>
<DoubleAnimation Storyboard.TargetName="elp1" Storyboard.TargetProperty="Height" From="10" To="80" Duration="0:0:1.5"/>
<DoubleAnimation Storyboard.TargetName="elp1" Storyboard.TargetProperty="Opacity" From="0.9" To="0" Duration="0:0:1.5"/>
<DoubleAnimation Storyboard.TargetName="elp2" Storyboard.TargetProperty="Opacity" From="0.3" To="1" Duration="0:0:1.5"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>

</esri:MarkerSymbol.ControlTemplate>
</esri:MarkerSymbol>

转载于:https://www.cnblogs.com/Robert-huge/p/5902389.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、付费专栏及课程。

余额充值