2017-03-22 15 views
0

UWP Flipviewコントロールで画像を変更するときにアニメーション効果を変更することはできますか?スライドインするのではなく、クロスフェード効果が好きです。UWP FlipViewを変更する

私はそれを行う方法は見当たりませんでしたが、確認したいと思いました。どんな助けもありがとうございます。

ありがとうございました。

答えて

1

を押したときは、手動でアニメーションを上書きすることができるはずです、ただで-とアウトコレクションのアイテムをフェードカスタムコントロールを記述する方が簡単だと思います、コードの背後にある。まず、UseTouchAnimationsForAllNavigation = "False"を使用してビルトインアニメーションを無効にします。

<FlipView x:Name="FlipView" UseTouchAnimationsForAllNavigation="False" SelectionChanged="Selector_OnSelectionChanged" > 
     <FlipView.Items> 
      <Grid Background="Red"></Grid> 
      <Grid Background="Blue"></Grid> 
      <Grid Background="Green"></Grid> 
     </FlipView.Items> 
    </FlipView> 

その後、分離コードで絵コンテを実行します。

private void Selector_OnSelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (e.AddedItems.Count <= 0) return; 
     if (e.RemovedItems.Count <= 0) return; 

     var newSelectedItem = FlipView.ItemContainerGenerator.ContainerFromItem(e.AddedItems[0]) as FlipViewItem; 
     var previousSelectedItem = FlipView.ItemContainerGenerator.ContainerFromItem(e.RemovedItems[0]) as FlipViewItem; 

     if (newSelectedItem == null) return; 
     if (previousSelectedItem == null) return; 

     var duration = new Duration(TimeSpan.FromMilliseconds(500)); 

     var hideAnimation = new DoubleAnimation 
     { 
      From = 1.0, 
      To = 0.0, 
      AutoReverse = false, 
      Duration = duration 
     }; 

     var hideSb = new Storyboard(); 
     hideSb.Children.Add(hideAnimation); 
     Storyboard.SetTargetProperty(hideSb, "Opacity"); 
     Storyboard.SetTarget(hideSb, previousSelectedItem); 

     hideSb.Begin(); 

     var showAnimation = new DoubleAnimation 
     { 
      From = 0.0, 
      To = 1.0, 
      AutoReverse = false, 
      Duration = duration 
     }; 

     var showSb = new Storyboard(); 
     showSb.Children.Add(showAnimation); 
     Storyboard.SetTargetProperty(showSb, "Opacity"); 
     Storyboard.SetTarget(showSb, newSelectedItem); 

     showSb.Begin(); 
    } 
+0

完璧 - ありがとう – Steve0212

+0

Thx、xamlで使えますか? – lindexi

0

徹底した外観はありませんでしたが、デフォルトのテンプレート(https://msdn.microsoft.com/en-us/library/windows/apps/mt299124.aspx)にはアイテムとスクロールビューアの水平スタックパネルがありますので、これを行う方法は実際にはわかりません。

個人的に

私はユーザーがボタンか何か

+0

をこれは私が、私はそれを行うには何か良い方法を受信しなかった場合の対処するために計画するものです。しかし、ミカエルは私にそれをする良い方法を与えたので、それは私が進めている方法です。ありがとう。 – Steve0212

関連する問題