MVVMパターンに従ってWPFアプリケーションを作成しています。ボタンとテキストブロックが1つあります。TextBlockは、テキストが空でない場合にのみ表示されます。アプリケーションの開始時にテキストは空になり、テキストブロックは表示されません。ボタンをクリックすると、サンプルテキストが設定され、テキストブロックが表示されます。そして、もう一度クリックすると、ボタンのテキストが空に設定され、テキストブロックが非表示になります。
今私が欲しいのは、テキストが設定されると、アニメーション(フェード)の不透明度が5秒で0から1に変わることです。
これが私のXAMLです
<TextBlock Text="{Binding StatusMessage}" Visibility="{Binding IsStatusMessageVisible}" />
<Button Content="UpdateText" Command="{Binding UpdateTextCommand}" />
そして、これが私のViewModelです。
private string _statusMessage;
public string StatusMessage
{
get { return _statusMessage ?? (_statusMessage = string.Empty); }
set
{
_statusMessage = value;
NotifyOfPropertyChange(() => IsStatusMessageVisible);
NotifyOfPropertyChange(() => StatusMessage);
}
}
public System.Windows.Visibility IsStatusMessageVisible
{
get
{
return (string.IsNullOrEmpty(StatusMessage))
? System.Windows.Visibility.Collapsed
: System.Windows.Visibility.Visible;
}
}
public void UpdateText()
{
if (string.IsNullOrEmpty(StatusMessage))
StatusMessage = Properties.Resources.WaitMessageStatus;
else
StatusMessage = string.empty;
}
StatusMessageテキストが設定されているときにアニメーションが実行されるようにしたいだけです。