【WPF】自作カレンダー その3(年間カレンダー)

C#, 開発

おはようございます。

自作カレンダーその3です。
今回は、ひとまず目標にしていた年間カレンダーを作成します。

動的に生成できるようにしたのが幸いして?割と簡単に実装することができました。

前回のプログラムはこちら。

スタイルの変更

画面サイズ変更時に各月のカレンダーも一緒にサイズが変わるようにします。

StyleDic.xaml(抜粋)

カレンダー格納グリッドのスタイル追加し、グループボックスとカレンダーグリッドの幅と高さを「Auto」、縦横位置を「Stretch」に変更。

スポンサーリンク

画面の変更

こちらも、サイズ変更の対応と、年月ボックスを年ボックスに変更します。

MainWindow.xaml

全体を「DocPanel」で囲み、画面の枠組みとなるグリッドの幅と高さを「Auto」に、
カレンダー格納グリッドの幅と高さを「Auto」、縦横位置を「Strech」に変更します。

プログラム修正

新規クラス追加

年コンボボックス用のクラスを追加します。

YearInfo.cs

 

月、日付情報クラスの修正

月情報クラスを年情報クラスの派生クラスに変更し、それに伴い日付情報クラスも変更します。

MonthInfo.cs

DateInfo.cs

コードビハインドの修正

次の変更を実施

  • 年間カレンダー作成メソッドの追加
  • グリッドのマトリクス設定メソッドの追加
  • 年月コンボ選択変更イベントを年コンボ選択変更イベントメソッドに変更
  • 初期化処理にて、年コンボ用の項目を生成、セットした後に当年のカレンダーを作成して画面にセットする

MainWindo.xaml.cs

 

起動してみる

起動後画面
起動後画面

年月の時と同様、6年分のリストを作成しデフォルト表示を当年としました。

年を変更
年を変更

年を変更した際の表示です。

選択した際の表示
選択した際の表示

セルを選択するとちゃんと日付が表示されます。

サイズを小さくした表示
サイズを小さくした表示

少し分かりにくいですが、画面サイズを縮小した際の表示です。

画面サイズを大きくした表示
画面サイズを大きくした表示

こちらは分かりやすいですかね。

まとめ

ひとまず目標のところまで出来たので一旦完了とします。
(また何か思いついたら追加で実装するかもしれません。)

ではでは。

スポンサーリンク


関連するコンテンツ

C#, 開発C#, Calendar, WPF, プログラミング

Posted by doradora