WPF 警报放射效果

<Style x:Key="btnRadiationStyle" TargetType="Button">
                <Setter Property="BorderThickness" Value="0"/>
                <Setter Property="Cursor" Value="Hand"></Setter>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Grid>
                                <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>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="Auto"/>
                                </Grid.ColumnDefinitions>
                                <Ellipse x:Name="elp1">
                                    <Ellipse.Fill>
                                        <RadialGradientBrush>
                                            <GradientStop Color="#F00" Offset="1"/>                                           
                                            <GradientStop Color="#0FB2" Offset="0"/>
                                        </RadialGradientBrush>
                                    </Ellipse.Fill>
                                </Ellipse>
                                <Ellipse Fill="Red" Height="15" StrokeThickness="1" StrokeDashArray="5,2.95" StrokeDashOffset="6.7" Width="15"/>
                                <Line X1="31" Y1="40.5" X2="38" Y2="40.5" Visibility="Hidden"/>
                                <Line X1="43" Y1="40.5" X2="50" Y2="40.5" Visibility="Hidden"/>
                                <Line X1="40.5" Y1="31" X2="40.5" Y2="38" Visibility="Hidden"/>
                                <Line X1="40.5" Y1="43" X2="40.5" Y2="50" Visibility="Hidden"/>
                                <Ellipse x:Name="elp2" Cursor="Hand" Height="15" Width="15">
                                    <Ellipse.Fill>
                                        <RadialGradientBrush>
                                            <GradientStop Color="#F00" Offset="1"/>
                                            <GradientStop Color="#FD9" Offset="0"/>
                                        </RadialGradientBrush>
                                    </Ellipse.Fill>
                                </Ellipse>
                                <TextBlock Grid.Column="1" x:Name="txt" Text="{TemplateBinding Content}" FontSize="14" VerticalAlignment="Center" Foreground="White"/>
                            </Grid>
                            <ControlTemplate.Triggers>
                                <EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="elp2">
                                    <BeginStoryboard>
                                        <Storyboard RepeatBehavior="Forever">
                                            <DoubleAnimation Storyboard.TargetName="elp1" Storyboard.TargetProperty="Width" From="10" To="40" Duration="0:0:1.5"/>
                                            <DoubleAnimation Storyboard.TargetName="elp1" Storyboard.TargetProperty="Height" From="10" To="40" Duration="0:0:1.5"/>
                                            <DoubleAnimation Storyboard.TargetName="elp2" 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>
                                <EventTrigger RoutedEvent="MouseEnter">
                                    <BeginStoryboard>
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="txt" Storyboard.TargetProperty="FontSize" To="18" Duration="0:0:0.2"></DoubleAnimation>
                                        </Storyboard>
                                    </BeginStoryboard>
                                </EventTrigger>
                                <EventTrigger RoutedEvent="MouseLeave">
                                    <BeginStoryboard>
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="txt" Storyboard.TargetProperty="FontSize" To="14" Duration="0:0:0.2"></DoubleAnimation>
                                        </Storyboard>
                                    </BeginStoryboard>
                                </EventTrigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
WPF是一种用于创建富客户端应用程序的技术,它提供了丰富的控件和特效来增强应用程序的外观和交互性。其中,WPF的3D效果使得我们可以在应用程序中创建出令人惊叹的立体效果WPF的3D控件主要有Viewport3D和ModelVisual3D等。Viewport3D是一个呈现3D图形的区域,它允许我们在其中放置3D模型等内容。ModelVisual3D则是3D场景中的可视化对象,可以用来表示3D模型、灯光、相机等。 通过使用这些3D控件,我们可以在WPF应用程序中实现各种炫酷的效果。例如,我们可以使用3D模型来创建一个旋转的立方体或球体,添加光照效果让其看起来更真实。我们还可以使用相机控制视角,让用户可以在3D场景中自由移动和查看。 另外,WPF还提供了一些内置的3D效果,例如阴影、透明度、雾化等。通过调整这些效果参数,我们可以进一步改变3D场景的外观和感觉。 需要注意的是,WPF的3D效果相对于其他专门的3D引擎(如Unity、Unreal Engine等)来说功能较为有限。但在一般的桌面应用中,使用WPF的3D效果已经足够满足大部分需求,并且使用起来相对简单。 总的来说,WPF的3D效果为我们提供了一个强大的工具,可以在应用程序中实现各种炫酷的立体效果。无论是创建立体模型、添加光照效果还是调整视角,WPF都能满足我们的需求,并能让我们的应用程序更具吸引力和交互性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值