wpf Visibility 動畫
阿新 • • 發佈:2018-12-27
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-
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-
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);