wpf Visibility 动画

 

XAML实现:

[xhtml]  view plaincopy
 
<Border Height="100" Width="80" CornerRadius="11,11,11,11" Margin="5" BorderThickness="2" Background="Brown" IsEnabled="False" Name="Bord11">  
    <Border.Triggers>  
        <EventTrigger RoutedEvent="Border.Loaded" >  
            <EventTrigger.Actions>  
                <BeginStoryboard>  
                    <Storyboard>  
                        <ObjectAnimationUsingKeyFrames  Storyboard.TargetProperty="Visibility" Duration="0:0:4">  
                            <ObjectAnimationUsingKeyFrames.KeyFrames>  
                                <DiscreteObjectKeyFrame KeyTime="0:0:1" >  
                                    <DiscreteObjectKeyFrame.Value>  
                                        <Visibility>Visible</Visibility>  
                                    </DiscreteObjectKeyFrame.Value>  
                                </DiscreteObjectKeyFrame>                                                  
                                <DiscreteObjectKeyFrame KeyTime="0:0:2" >  
                                    <DiscreteObjectKeyFrame.Value>  
                                        <Visibility>Hidden</Visibility>  
                                    </DiscreteObjectKeyFrame.Value>  
                                </DiscreteObjectKeyFrame>                                                  
                                <DiscreteObjectKeyFrame KeyTime="0:0:3" >  
                                    <DiscreteObjectKeyFrame.Value>  
                                        <Visibility>Collapsed</Visibility>  
                                    </DiscreteObjectKeyFrame.Value>  
                                </DiscreteObjectKeyFrame>  
                                  
                            </ObjectAnimationUsingKeyFrames.KeyFrames>  
                        </ObjectAnimationUsingKeyFrames>  
                    </Storyboard>  
                </BeginStoryboard>  
            </EventTrigger.Actions>  
        </EventTrigger>  
    </Border.Triggers>  
    <Label Height="39" Name="label1" Width="62">ABCDEFGH</Label>  
</Border>  

  

后台实现:

[c-sharp]  view plaincopy
  1. ObjectAnimationUsingKeyFrames animate = new ObjectAnimationUsingKeyFrames();  
    animate.Duration = new TimeSpan(0,0,4);  
    animate.RepeatBehavior = RepeatBehavior.Forever;  
    DiscreteObjectKeyFrame kf1 = new DiscreteObjectKeyFrame(Visibility.Visible, new TimeSpan(0, 0, 1));  
    DiscreteObjectKeyFrame kf2 = new DiscreteObjectKeyFrame(Visibility.Hidden, new TimeSpan(0, 0, 2));  
    DiscreteObjectKeyFrame kf3 = new DiscreteObjectKeyFrame(Visibility.Collapsed, new TimeSpan(0, 0,3));  
    animate.KeyFrames.Add(kf1);  
    animate.KeyFrames.Add(kf2);  
    animate.KeyFrames.Add(kf3);  
    Bord11.BeginAnimation(Border.VisibilityProperty, animate); 

XAML实现:

[xhtml]  view plaincopy
 
<Border Height="100" Width="80" CornerRadius="11,11,11,11" Margin="5" BorderThickness="2" Background="Brown" IsEnabled="False" Name="Bord11">  
    <Border.Triggers>  
        <EventTrigger RoutedEvent="Border.Loaded" >  
            <EventTrigger.Actions>  
                <BeginStoryboard>  
                    <Storyboard>  
                        <ObjectAnimationUsingKeyFrames  Storyboard.TargetProperty="Visibility" Duration="0:0:4">  
                            <ObjectAnimationUsingKeyFrames.KeyFrames>  
                                <DiscreteObjectKeyFrame KeyTime="0:0:1" >  
                                    <DiscreteObjectKeyFrame.Value>  
                                        <Visibility>Visible</Visibility>  
                                    </DiscreteObjectKeyFrame.Value>  
                                </DiscreteObjectKeyFrame>                                                  
                                <DiscreteObjectKeyFrame KeyTime="0:0:2" >  
                                    <DiscreteObjectKeyFrame.Value>  
                                        <Visibility>Hidden</Visibility>  
                                    </DiscreteObjectKeyFrame.Value>  
                                </DiscreteObjectKeyFrame>                                                  
                                <DiscreteObjectKeyFrame KeyTime="0:0:3" >  
                                    <DiscreteObjectKeyFrame.Value>  
                                        <Visibility>Collapsed</Visibility>  
                                    </DiscreteObjectKeyFrame.Value>  
                                </DiscreteObjectKeyFrame>  
                                  
                            </ObjectAnimationUsingKeyFrames.KeyFrames>  
                        </ObjectAnimationUsingKeyFrames>  
                    </Storyboard>  
                </BeginStoryboard>  
            </EventTrigger.Actions>  
        </EventTrigger>  
    </Border.Triggers>  
    <Label Height="39" Name="label1" Width="62">ABCDEFGH</Label>  
</Border>  

  

后台实现:

[c-sharp]  view plaincopy
  1. ObjectAnimationUsingKeyFrames animate = new ObjectAnimationUsingKeyFrames();  
    animate.Duration = new TimeSpan(0,0,4);  
    animate.RepeatBehavior = RepeatBehavior.Forever;  
    DiscreteObjectKeyFrame kf1 = new DiscreteObjectKeyFrame(Visibility.Visible, new TimeSpan(0, 0, 1));  
    DiscreteObjectKeyFrame kf2 = new DiscreteObjectKeyFrame(Visibility.Hidden, new TimeSpan(0, 0, 2));  
    DiscreteObjectKeyFrame kf3 = new DiscreteObjectKeyFrame(Visibility.Collapsed, new TimeSpan(0, 0,3));  
    animate.KeyFrames.Add(kf1);  
    animate.KeyFrames.Add(kf2);  
    animate.KeyFrames.Add(kf3);  
    Bord11.BeginAnimation(Border.VisibilityProperty, animate); 

猜你喜欢

转载自www.cnblogs.com/robertyao/p/10182979.html