VB のたまご

作成日: 2016/10/25, 更新日: 2016/10/25


他作カレンダーコントロールを拡張してみた

  •  UWP で盛り上がっているかもしれませんが、私は今 WPF です。WPF の記事は、C#er 様方がほとんどだったため、 C# のままで WPF を勉強していました。今回、WPF のユーザーコントロールとして、カレンダーコントロールを作成しましたが、 コードが C# のみですorz。VBer 様方ごめんなさいorz。

  • スポンサーリンク


  •  ネットで WPF を勉強中、かずきさんのブログを訪れまして、カレンダーコントロールを作ってみました。 この記事では、コンバーターの作り方使い方、ListBox 等の ItemsControl の扱い方 (Template, ItemsPanel, ItemContainerStyle, ItemTemplate。ItemsControl に関しては、さらにぐらばくさんのサイトも見ました)を勉強しました。 ListBox 的な縦並び以外に、今回みたいなカレンダー並びとかにできて、これが ListBox 的な扱いでできるの!?とか思って WPF は面白いです。

  •  で、勉強がてら、Windows 標準の時計アプリケーション(のカレンダー部分)を作ってみようと思いつき、このネタが出来上がりました。 コントロールの見た目が日表示、月表示、年表示と3段階に変化する機構はどうやって作るのか、当初さっぱりでしたが、 3つの UI を作っておいて、Visibility の切り替えだけでいけるじゃんと気付いたので、なんとか作ることができました。 簡単な構成としてはこんな感じです。

  • イメージ

  •  また、このカレンダーコントロールを画面に貼った後で気づいたのですが、日付をクリックした後でイベントが欲しくなったため、 ルーティングイベントと依存関係プロパティを勉強しました。これに関しては、コードビハインドに書いています。 プロの方はこれすらも ViewModel 側に書いてやってのけてしまうのでしょうか?気になります。

  • イメージ

  •  で、完成したカレンダーの遷移図がこちら。各タイトルのクリックで、日→月→年と遷移していき、 各項目クリックで、年→月→日と遷移していきます。

  • イメージ

サンプルコードのダウンロード

おわりに

  •  全然関係ないですが、過去記事内のあちこちで、残作業やるやる詐欺が多発しています。ネタでもフラグでもなく、 単純にやれていないだけで、作んなきゃな~とは思っています。思っているけどできないだけですorz。ごめんなさい。 最後までこの記事を読んでいただき、ありがとうございました。

  • スポンサーリンク