WPF用Blend写的交通信号灯

来源:互联网 发布:文玩网络交易平台 编辑:程序博客网 时间:2024/05/17 01:55

用Blend写WPF界面和Behavior特别方便,下面是我写的一个交通信号灯,用Blend写完后代码直接Copy到wpf窗体就可以了。

1.打开Blend做一个矩形和三个圆形,然后分别填充颜色,把矩形的四角编程圆角;



2.添加时间动画并设置动画循环显示:



3.xaml代码如下:

<Window  x:Class="wpf红绿灯.MainWindow"         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"         Title="MainWindow" Height="106.879" Width="218.457">    <Window.Resources>        <Storyboard x:Key="Storyboard1" AutoReverse="True" RepeatBehavior="Forever">            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="ellipse1">                <EasingColorKeyFrame KeyTime="0:0:0.4" Value="sc#1, 0.004391442, 0.004024717, 0.004024717"/>                <EasingColorKeyFrame KeyTime="0:0:0.9" Value="#FFF9FF00"/>                <EasingColorKeyFrame KeyTime="0:0:1.5" Value="sc#1, 0.004391442, 0.004024717, 0.004024717"/>            </ColorAnimationUsingKeyFrames>            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="ellipse2">                <EasingColorKeyFrame KeyTime="0:0:0.4" Value="#FF1B1C1B"/>                <EasingColorKeyFrame KeyTime="0:0:0.9" Value="#FF0F0E0E"/>                <EasingColorKeyFrame KeyTime="0:0:2" Value="#FF1DFF00"/>            </ColorAnimationUsingKeyFrames>            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="ellipse">                <EasingColorKeyFrame KeyTime="0:0:0.9" Value="#FF0F0E0E"/>            </ColorAnimationUsingKeyFrames>        </Storyboard>    </Window.Resources>    <Window.Triggers>        <EventTrigger RoutedEvent="FrameworkElement.Loaded">            <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>        </EventTrigger>    </Window.Triggers>    <Grid x:Name="grid">        <Rectangle Fill="#FF0063FF" HorizontalAlignment="Left" Height="65" Margin="6,6,0,0" Stroke="Black" VerticalAlignment="Top" Width="202" RadiusY="13.394" RadiusX="13.394"/>        <Ellipse x:Name="ellipse" Fill="#FFFF0006" HorizontalAlignment="Left" Height="57" Margin="11,10,0,0" Stroke="Black" VerticalAlignment="Top" Width="56"/>        <Ellipse x:Name="ellipse1" Fill="#FF070707" HorizontalAlignment="Left" Height="57" Margin="77,10,0,0" Stroke="Black" VerticalAlignment="Top" Width="56"/>        <Ellipse x:Name="ellipse2" Fill="#FF101111" HorizontalAlignment="Left" Height="57" Margin="145,10,0,0" Stroke="Black" VerticalAlignment="Top" Width="56"/>    </Grid></Window>

4.最后效果如图:


下面这个是竖着的效果图:


0 0
原创粉丝点击