2010/07/24 - MIDI楽譜表示はいい感じに

MIDI楽譜表示。UIはだいたいできてきた。今こんな感じ。

20100724


C++からC#への移行も兼ねてWPFで作ってるのだが,WPFで実装していくと,作った覚えのない部分が勝手に実装されていたりするのが気持ちいい。例えば下のプログレスバーは演奏箇所にBindingしているので演奏が進むと勝手にバーが進むようになっている。で,それとは別に楽譜の中にある赤いカーソルは,演奏している場所に合わせて描画している。こうしておくとプログレスバーを動かすとリアルタイムに赤いカーソルが動くようになる。そんなコードは作り込んでないのに勝手に動くのが素晴らしい。

とはいえ,今までのWin32プログラミングと比べて,どれだけコードをかかずにやりたいことを実現させるか,みたいなのに時間を使ってしまうので無駄に手間がかかってるような。


先週は右側のトラック表示部分をドラッグして並べ替えられるようにしていた。先月のMSDN Magazineにいい感じの記事があったので,それを参考に実装はできたのだが,ItemContainerGeneratorとか深い部分はまだ分かってない感じ。

最後にはまったのがドラッグ時のアニメーション。StoryboardのDurationにmillisecondを指定しても,アニメーションが途中で終わってしまって困ったのだが,StoryboardのDurationではなくてDoubleAnimationとかのDurationに指定しないといけないのか。Storyboardは0.3秒とかでもDoubleAnimationがデフォルトの1秒になってて途中で切れていたっぽい。

UIが完成したらもう一度楽譜に戻って未実装部分を作り込んで,とりあえず楽譜表示は完成か。

コメントする