を正常に適用される前に:トリガー可視性の変更、それは私が私のユーザーコントロールのいずれかのスタイルを持っている
<Style x:Key="AddServerPanel" TargetType="{x:Type uc:AddServer}">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetProperty="Margin" Duration="0:0:0.2" From="252,550,26,0" To="252,248,26,0" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
<Trigger Property="Visibility" Value="Hidden">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetProperty="Margin" Duration="0:0:0.2" From="252,248,26,0" To="252,550,26,0" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
私はボタンをクリックしたときに表示される背景に隠されたユーザーコントロールを持っています。スライドを入れてアニメーションをスライドしたいこのコードはすでにスライディングインで動作しますが、スライディングアウトはコントロールが消えても正しく動作しません。これは、visibilityプロパティがコントロールに適用され、その後にトリガが呼び出されたためです。コントロールに適切な「スライドアウト」効果を持たせるために、この動作を修正するにはどうすればよいですか?
編集
私は私のコードを変更し、DataTriggerに切り替え。 これは動作していますが、Bindingプロパティの値がfalseの場合はアニメーションが表示されます。これは本当に興味があります。 また、ThicknessAnimationの "From"プロパティをコントロールの現在のマージンに設定する方法を知っておくとよいでしょう。
<uc:AddServer x:Name="AddServerPanel" Height="300" Width="570" Margin="252,550,26,0">
<uc:AddServer.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=AddServerPanelVisible}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetProperty="Margin" Duration="0:0:2" From="252,550,26,0" To="252,248,26,0" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
<DataTrigger Binding="{Binding Path=AddServerPanelVisible}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ThicknessAnimation Storyboard.TargetProperty="Margin" Duration="0:0:2" From="252,248,26,0" To="252,550,26,0"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
</uc:AddServer.Style>
</uc:AddServer>
どのようにコントロールの可視性を変更していますか? – Nitin
ViewModelでバインディングを取り除いた – chris579