WPF动画

作者: 久百一 | 来源:发表于2020-01-03 16:38 被阅读0次
FillBehavior="Stop" // 这个属性会使动画完毕后还原

//-------------改变按钮的背景色为绿色

<Button Content="Button" Height="75" HorizontalAlignment="Left" Margin="27,12,0,0" Name="btnImgBrush" VerticalAlignment="Top" Width="160" Background="LightGray">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.MouseLeave">
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimation To="Green" 
                                    Storyboard.TargetProperty="(Button.Background).(SolidColorBrush.Color)" 
                                    FillBehavior="Stop" 
                                    Duration="0:0:1"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
 </Button>

//-------------改变窗体透明度

<Window.Triggers>
    <EventTrigger RoutedEvent="Window.Loaded">
      <EventTrigger.Actions>
          
        <BeginStoryboard>
          <Storyboard SpeedRatio="1">
              
            <DoubleAnimation Storyboard.TargetName="element"
                                Storyboard.TargetProperty="Opacity"
                                From="0.2" To="1" Duration="0:0:2.5"></DoubleAnimation>
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger.Actions>
        
    </EventTrigger>
  </Window.Triggers>

//------------让控件透明度渐变

                        <Trigger Property="IsMouseOver" Value="true">
                            <Trigger.EnterActions>
                                <BeginStoryboard>
                                    <Storyboard Storyboard.TargetProperty="Opacity" Storyboard.TargetName="bg">
                                        <DoubleAnimation  From="0" To="0.8" Duration="00:00:00.1" BeginTime="00:00:00"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.EnterActions>
                            <Trigger.ExitActions>
                                <BeginStoryboard>
                                    <Storyboard Storyboard.TargetProperty="Opacity" Storyboard.TargetName="bg">
                                        <DoubleAnimation From="0.8" To="0" Duration="00:00:00.1" BeginTime="00:00:00"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </Trigger.ExitActions>
                        </Trigger>

无边框窗体增加进入退出动画

<Window.Resources>
        <ResourceDictionary>
            <Storyboard x:Key="HideWindow">
                <DoubleAnimation Duration="0:0:0.1" From="1" To="0" Storyboard.TargetProperty="Opacity" FillBehavior="Stop" />
                <DoubleAnimation Duration="0:0:0.1" From="1" To="0.8" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleX)" FillBehavior="Stop" Storyboard.TargetName="MainGrid"/>
                <DoubleAnimation Duration="0:0:0.1" From="1" To="0.8" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleY)" FillBehavior="Stop" Storyboard.TargetName="MainGrid"/>
            </Storyboard>                        
            <Storyboard x:Key="ShowWindow" >     
                <DoubleAnimation Duration="0:0:0.1" From="0" To="1" Storyboard.TargetProperty="Opacity" FillBehavior="Stop"/>
                <DoubleAnimation Duration="0:0:0.1" From="0.8" To="1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleX)" FillBehavior="Stop" Storyboard.TargetName="MainGrid"/>
                <DoubleAnimation Duration="0:0:0.1" From="0.8" To="1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleY)" FillBehavior="Stop" Storyboard.TargetName="MainGrid"/>
            </Storyboard>
        </ResourceDictionary>
    </Window.Resources>


    <Window.Triggers>
        <EventTrigger RoutedEvent="Window.Loaded">
            <BeginStoryboard Storyboard="{StaticResource ShowWindow}"/>
        </EventTrigger>
    </Window.Triggers>


<Border CornerRadius="2" BorderThickness="1" BorderBrush="#15000000" x:Name="MainGrid" RenderTransformOrigin="0.5,0.5" >
        <Border.RenderTransform>
            <TransformGroup>
                <ScaleTransform  ScaleX="1" ScaleY="1"/>
                <SkewTransform/>
                <RotateTransform/>
                <TranslateTransform/>
            </TransformGroup>
        </Border.RenderTransform>
</Border>


private void CloseWindowButton_Click(object sender, RoutedEventArgs e)
        {
            var story = (Storyboard)this.Resources["HideWindow"];
            if (story != null)
            {
                story.Completed += delegate { Close(); };
                story.Begin(this);
            }
        }

一个云朵的动画文章 image【https://www.cnblogs.com/nimorl/p/9907317.html

相关文章

网友评论

      本文标题:WPF动画

      本文链接:https://www.haomeiwen.com/subject/fbzzoctx.html