UIコンポーネントをブリンクするコードビハインド
WPFにおいて、テキストやボタンなどのUIコンポーネントをブリンクさせるサンプルです。例は、300ミリ秒間にOpacity値を1.0から0に変化させることを3回繰り返すものです。
XAMLで記述するサンプルはネット上に色々あるのですが、ソースコードで記述した例が少ないですねぇ。
DoubleAnimation blink = new DoubleAnimation(); blink.From = 1.0; blink.To = 0.0; blink.AutoReverse = true; blink.RepeatBehavior = new RepeatBehavior(3); blink.Duration = new Duration(TimeSpan.FromMilliseconds(300)); Storyboard sb = new Storyboard(); sb.Children.Add(blink); // viewにボタンとかテキストを指定してね。 Storyboard.SetTarget(blink, view); Storyboard.SetTargetProperty(blink, new PropertyPath("(UIElement.Opacity)")); sb.Begin();
上記のソースコードと同様な処理をXAMLを用いて記述した例です。ボタンをクリックしたときにブリンクします。
<Button Content="Animation2" Height="23" Name="button3" Width="75"> <Button.Triggers> <EventTrigger RoutedEvent="Button.Click"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.3" RepeatBehavior="3x" AutoReverse="true" /> </Storyboard> </BeginStoryboard> </EventTrigger> </Button.Triggers> </Button>
コードビハインドで記述するのが簡単にならないかなぁ。