2016-06-30 13 views
2

UWPアプリケーションでは、Windows 10のMailアプリケーションのように、ウィンドウの下部にエラーバーが表示されます。アイデアは、VisibilityをCollapsedに変更すると、アニメーションが開始されます。 アニメーションは、ウィンドウが作成されたときに一度しか動作しません。 VisibilityがVisibleからCollapsedに変わるたびにアニメーションをトリガーしたいと思います。 XAMLコードは次のとおりです。今、全体のStackPanelを削除して、再びそれを再作成するためのVisibleプロパティを使用してUWPでアニメーションを再起動するにはどうすればよいですか?

<StackPanel Grid.Row="1" Canvas.ZIndex="10" Background="{StaticResource BackError}" VerticalAlignment="Bottom" Name="NotificationStackPanel" > 
     <StackPanel.Transitions> 
      <TransitionCollection> 
       <PaneThemeTransition Edge="Bottom"/> 
      </TransitionCollection> 
     </StackPanel.Transitions> 
     <TextBlock VerticalAlignment="Center" Foreground="White" Margin="20" Name="NotificationText"/> 
    </StackPanel> 

私の回避策、それは動作しますが、それはあまりにも醜いようです。

+1

遷移が悲しげな相互作用の可能性の多くを提供していない...あなたがいる場合:

パネルアニメーションを再起動するには、その親要素を形成StackPanelを削除した後のように、再びそれを追加することができます'PaneThemeTransition'を使いたければ、すでに唯一可能な方法でそれをやっています。 ストーリーボードアニメーションを代わりに使用する場合は、他のオプションしか考えられません。 –

答えて

-2

PaneThemeTransitionはトランジションアニメーションです。通常、パネルペイントやカスタムソフトキーボードなど、画面にかなりの距離をスライドするUIを表示するには、パネルアニメーション(PaneThemeTransition)を使用します。

遷移アニメーションには、UI要素の追加、削除、並べ替えなどの際に自動的に実行できる組み込みのトリガ(遷移)があります。トランジションアニメーションは簡単に適用できます。しかし、私たちはアニメーション効果のタイミングと順序をあまり制御することはできません。

private bool isVisible = true; 

private void ChangeVisibility() 
{ 
    if (isVisible) 
    { 
        //Root is a Grid which is the parent element of NotificationStackPanel 
        Root.Children.Remove(NotificationStackPanel); 
    } 
    else 
    { 
        Root.Children.Add(NotificationStackPanel); 
    } 
    isVisible = !isVisible; 
} 
+0

-1あなたはその質問をお読みになりましたか? 「私の回避策はStackPanel全体を取り除いて再作成することですが、うまくいかないようです。」 –

+0

@Markus OPは "再作成する"と言っていますが、再確認する必要はありませんので、私の答えでは**再度追加してください**これはパネルアニメーションを再開する唯一の方法だと思います。より良いアプローチがあれば、それを共有してください! – ZORRO

関連する問題