MVVMで成功メッセージを表示するためにテキストブロックをフェードアウトしようとしていますが、もう一度フェードアウトすることはできません。私はこれを見て:WPF MVVM Property Change Animationしかし、実際には従っていない。ここ スタイルです:MVVMのストーリーボードアニメーション
<Style TargetType="TextBlock" x:Key="fadeinout">
<Style.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="(TextBlock.Opacity)" From="0.0" To="1.0" Duration="0:0:5"/>
<DoubleAnimation Storyboard.TargetProperty="(TextBlock.Opacity)" From="1.0" To="0.0" Duration="0:0:5"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
とビュービューモデルで
<TextBlock Text="{Binding Path=SuccessMessage}" Style="{StaticResource fadeinout}" Width="60"/>
、保存した後私は中:
SuccessMessageはセッターとプロパティをあるSuccessMessage = "Success";
PropertyChangedを呼び出します。私はテキストを「あなたの保存は成功しました」のようなものに固定したいと思いますが、どのような場合でも、ユーザーが再度保存した場合に、テキストブロックがフェードインしてから再度出力するようにすることができます。私は何をする必要がありますか?
EDIT(私は8時間の自己お答えできません): バインディングにNotifyOnTargetUpdatedを追加する必要がありましたし、今では中とフェードアウト:
<TextBlock Text="{Binding SuccessMessage, NotifyOnTargetUpdated=True}" Style="{StaticResource fadeInOut}"
私は今のような1つのTextBoxを持っていますヤコブの答えあたり(しかしBinding.TargetUpdatedにEventTriggerを変更)このような上記と1つのTextBlockインラインのようなもののTextBlock、各付き
<TextBlock Text="{Binding SuccessMessage, NotifyOnTargetUpdated=True}" Opacity="0" x:Name="tbMessage" Width="60" HorizontalAlignment="Left">
<TextBlock.Triggers>
<EventTrigger RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="tbMessage" Storyboard.TargetProperty="Opacity" To="1" BeginTime="0:0:0" Duration="0:0:1" />
<DoubleAnimation Storyboard.TargetName="tbMessage" Storyboard.TargetProperty="Opacity" To="0" BeginTime="0:0:3" Duration="0:0:1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</TextBlock.Triggers>
</TextBlock>
と3つのすべてのフェードとアウトを保存します。奇妙なことに、テンプレート化されたものは、同じタイミングを使用するにもかかわらず、他の2つの後ろに少し遅れる。
私はそれを試みましたが、まだフェードアウトしません。 – Nix
@Nix:私はあなたにコードを試しました。正直なところ、TextBlock(fadeinもfadeoutもない)で動作させることはできません。しかし、私はそれをTextBoxで動作させることができます。上記の私の更新答えを見てください。 –
私は自己回答しました - それは拘束力がありましたが、タイミングに関するあなたの助けに感謝します。 – Nix