C#のWPFで色選択コントロールを自作する その1

タイトル

WPFのユーザーコントロールやテンプレートの仕組みを使って色を選択するコントロールを作成してみる。 

こんな感じのやつ。その名もColorPicker。
ColorPicker





ComboBoxをベースにしている。
コントロールをクリックすると、カラーパレットが表示されそこから色を選択出来るというもの。
もっと細かく色を作りたい時は「その他の色...」というところからColorDialogを表示させる仕組み。

SelectedColorというColor型のプロパティを作って、データソースへバインド出来るようにする。

ドロップダウンで表示されるComboBoxItemはItemTemplateを使ってBorderコントロールで表示。

ItemsPanelTemplateを使ってGridを配置し、ComboBoxItemを縦横に並べている。

カラーパレットは大まかに3段に分かれていて、グレースケール、基本色、グラデーションとしている。
段落間に開いたスペースはComboBoxのグループヘッダーの仕組みを使っている。

「その他の色...」の部分のグループヘッダーを使っていて、HeaderTemplateSelectorによって使用するHeaderTemplateを切り替えている。
 





関連記事


コメント