質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

2692閲覧

C# アニメーションについて

dylan

総合スコア26

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2016/02/19 06:50

Gridに複数枚Canvasを配置しています。
これを1コマとみてページ1から順にアニメーション(コマ送り)をしたいと思っています。
どのような方法があるでしょうか。
アニメーションに疎いので誰か教えてください。お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

WPF/UWP でのアニメーションには XAML を使って値を変更するタイプのものが一般的に用いられますが、今回の場合は C# で変更した方が簡単に実装できます。

lang

1<DockPanel> 2 <Button Click="StartAnimation" Content="スタート" DockPanel.Dock="Top" /> 3 <Grid> 4 <Grid Name="Grid1" Visibility="Visible"> 5 <Rectangle Fill="Blue" /> 6 </Grid> 7 <Grid Name="Grid2" Visibility="Collapsed"> 8 <Rectangle Fill="Red" /> 9 </Grid> 10 <Grid Name="Grid3" Visibility="Collapsed"> 11 <Rectangle Fill="Yellow" /> 12 </Grid> 13 <Grid Name="Grid4" Visibility="Collapsed"> 14 <Rectangle Fill="Green" /> 15 </Grid> 16 <Grid Name="Grid5" Visibility="Collapsed"> 17 <Rectangle Fill="Black" /> 18 </Grid> 19 </Grid> 20</DockPanel>

lang

1private void StartAnimation(object sender, RoutedEventArgs e) 2{ 3 var grids = new[] 4 { 5 this.Grid1, 6 this.Grid2, 7 this.Grid3, 8 this.Grid4, 9 this.Grid5, 10 }; 11 var timer = new DispatcherTimer(DispatcherPriority.Normal) { Interval = new TimeSpan(0, 0, 1) }; 12 timer.Tick += (_, __) => 13 { 14 var current = grids.FirstOrDefault(x => x.Visibility == Visibility.Visible); 15 foreach (var grid in grids) 16 { 17 grid.Visibility = Visibility.Collapsed; 18 } 19 var index = Array.IndexOf(grids, current); 20 var next = index == grids.Length - 1 ? grids[0] : grids[index + 1]; 21 next.Visibility = Visibility.Visible; 22 }; 23 timer.Start(); 24}

P.S. 質問の内容から WPF/UWP であると判断しましたが、次から C# の代わりに WPF/UWP をタイトルに付したほうが回答が得られやすいと思います。

投稿2016/02/19 07:24

chitoku

総合スコア1610

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dylan

2016/02/19 07:36

いつもお世話になります。 こういう方法があったんですね。盲点でした。 あとご指摘もありがとうございます。 助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問