データトリガーがfalseに設定されていると、関連するコントロールがアニメーションで非表示になります。スクリーンが読み込まれるとき、プロパティの値はすでにfalseです。それでもアニメーションを実行し、コントロールをフェードアウトさせて非表示にします。WPFアニメーションの読み込み中にデータトリガーが発生する
画面上で一時的な点滅が発生しています。
プロパティをtrueに設定するまで、これらのコントロールは画面に表示されないようにします。
<Window.Resources>
<Style x:Key="somestyle" TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding IsControlVisible,UpdateSourceTrigger=PropertyChanged}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:1.5" Storyboard.TargetProperty="Opacity" To="0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:1.5" Storyboard.TargetProperty="Opacity" To="1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<StackPanel VerticalAlignment="Center">
<Button Width="100" Height="50" Content="Toggle Visibiity" Click="Button_Click"/>
<Button Width="200" Height="50" Content="Something Something" Margin="0 20 0 0" Style="{StaticResource somestyle}"/>
</StackPanel>
ロードメソッドでは、読み込み開始時にStackPanelをvisible = falseに設定します。そして、Panelの最後の命令は、StackPanelをvisible = trueにします。 – jdweng
@jdweng loadメソッドには命令がありませんので、StackPanelVisible = falseとStackPanelVisible = trueの2つのステートメントのみが表示されます – MegaMind
あなたは言った: "画面がロードされています"。だから私は建設されたことを意味すると思いますか? Initialize()が発生し、既定のLoad()メソッドが発生しています。したがって、3つの命令(投稿した2つの命令だけでなく)を使用してLoadメソッドを追加する必要があります。 3番目の命令は、visible = falseとvisible = trueの間でbase.Load()メソッドを呼び出すことです。 – jdweng