ページを点滅させる (透明から赤に) データトリガーを作成したいと考えています。そこで、ビューモデル内でブール値フラグをリッスンする DataTrigger を作成しました。このフラグは、ユーザーに通知する必要があるときはいつでも示すものとします。その場合、マイページは透明から赤色に点滅します。
データトリガーを正しい方法で実装したことはかなり確信していましたが、アプリは何もしません-エラーも点滅もありません...だから、何かが欠けているに違いありません。
<Style x:Key="ReminderPage" TargetType="{x:Type ViewTemplates:TpApplicationBarView}" BasedOn="{StaticResource TpApplicationBarViewStyle}">
<Style.Triggers>
<!-- Reminder animation, when the time comes to remind the user -->
<DataTrigger Binding="{Binding IndicateReminderAnimation}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard x:Name="Blink">
<ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
AutoReverse="True"
From="Transparent"
To="Red"
Duration="0:0:1"
RepeatBehavior="Forever">
</ColorAnimation >
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
<DataTrigger Binding="{Binding IndicateReminderAnimation}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
AutoReverse="False"
To="Transparent"
Duration="0:0:1">
</ColorAnimation >
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
それで、私は何を間違えましたか?
更新:出力ウィンドウに次のメッセージが表示されます。
System.Windows.Media.Animation Warning: 6 : Unable to perform action because
the specified Storyboard was never applied to this object for interactive control.;
Action='Stop'; Storyboard='System.Windows.Media.Animation.Storyboard';
Storyboard.HashCode='61356140'; Storyboard.Type='System.Windows.Media.Animation.Storyboard';
TargetElement='System.Windows.Media.Animation.Storyboard'; TargetElement.HashCode='61356140';
TargetElement.Type='System.Windows.Media.Animation.Storyboard'
Update2: 周りをグーグルで調べたところ、UI スレッドの問題であることがわかりました。そのため、バインドされたプロパティを設定するたびにディスパッチャー呼び出しを行いました。しかし、このトリックでも、カラー アニメーションはありません。しかし、出力ウィンドウのエラーは消えたようです。それで、アニメーションを修正する方法についてさらにアイデアを探しています。
Update3:ページの背景色を設定する一般的な問題のようです。しかし、それは本当に奇妙です。Page は NavigationFrame に配置されます。ナビゲーション フレームの背景色を設定するとアプリケーションの色が変わりますが、ページの背景色を設定しても (アニメーションがなくても) 何も変わりません。