位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# 创建控件并设置样式 — 动画

提问人:刘团圆发布时间:2020-12-09

    动画是通过故事板创建的。毫无疑问,定义动画的最好方法就是使用Expression Blend这样的设计器。不过,也可以直接编辑XAML代码来定义动画,或通过C#代码来定义。

    WPF中的动画使用Stoiyboard对象来定义。使用故事板可以以动画的方式来设置属性值,例如,按钮的背景色。需要知道,可以动画方式来处理任何属性,而不只是影响控件显示方式的属性。

    可以在Resource Dictionaiy中独立定义故事板,也可以在控件中使用事件触发器的BeginStoryboard来定义。在故事板中可定义一个或多个动画,也就是时间线。

    在上一节中,使用触发器设置了鼠标在控件上经过时Button控件的前景色。分析下面的代码,这里使用的是故事板:

<Button Content="Animation" HorizontalAlignment="Left" Margin="197, 63, 0, 0"

                    VerticalAlignmentWTop" Width="75">

  <Button.Triggers>

    <EventTrigger RoutedEvent="Button.MouseEnter"> 

      <BeginStoryboard>

        <Storyboard>

          <ColorAnimation To=,,Yellow'1

                Storyboard.TargetProperty=H(Button.Foreground)

                          .(SolidColorBrush•Color)"

                FillBehavior="HoldEnd"

                Duration="0:0:1" AutoReverse="False" />

        </Storyboard>

    </BeginStoryboard>

    </EventTrigger>

    <EventTrigger RoutedEvent=11 Button."ouseLeave">

      <BeginStoryboard>

        <Storyboard>

          <ColorAnimation To="Black"

              Storyboard.TargetProperty="(Button.Foreground)

                        .(SolidColorBrush.Color)" 

              FillBehavior="HoldEnd"

              Duration="0:0:l"/>

        </Storyboard>

      </BeginStoryboard>

    </EventTrigger>

  </Button.Triggers〉

</Button>

    Button控件包含两个触发器,分别用于MouseEnter和MouseLeave。每个触发器都包含一个ColorAnimation,可分别将文本的前景色更改为黄色和黑色。使用Trigger直接设置Foreground属性和使用故事 板进行设置在细节上是不同的。使用故事板,所得到的是一种在1秒内流畅完成的过渡,但若直接设置属性,则过渡会瞬间发生。只要合理利用,两者都是非常有用的工具——如果使用太多的动画,会干扰用户,但合理地设置动画可以使应用程序看起来更加精彩。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部