WPF補助色品

作品情報

作品名:
WPF補助色品(だぶるぴーえふほじょしょくひん)
作者名:
はりまお
制作機材:
Core i7-4770 3.40GHz + 8GB RAM
Windows 10 Pro  (64bit, 22H2)
開発言語:
Visual Studio Community 2017
Visual Basic (WPFアプリケーション)
動作環境:
.NET Framework 4.7.2
形態種別:
フリーソフトウェア(ソース付き)

ダウンロード

ColorSupplement.zip(配布ファイル更新日:2025年01月27日)
収録内容
名前バージョン概容
ソース
ColorSupplement ソースフォルダ
アプリケーション
ColorSupplement.dll 1.8.0.0 色機能DLL
ColorSupplement.xml IntelliSense用
ColorSupplement_Sampler.exe 1.2.0.0 サンプル実行ファイル
ドキュメント
Readme_ColorSupplement.txt 説明文(本文)

概要

WPFアプリケーションで使用できる、色に関するちょっとした機能を提供するクラスライブラリ(DLL)です。
「色の選択」ダイアログボックス(Forms.ColorDialogの代用となるカラーピッカー)やHSV関連、色を操作する幾つかのメソッドを収録しています。

同梱の"ColorSupplement_Sampler.exe"は、"ColorSupplement.dll"を使ったサンプルプログラムです。

使い方

ダウンロードした圧縮ファイルを適当な方法で解凍してください。
そこに収録されている"ColorSupplement.dll"を、開発中のWPFプロジェクトの参照に追加すると、ColorSupplement名前空間以下の各機能が使えるようになります。
また、"ColorSupplement.xml"を先のDLLファイルと同じ場所に置くと、IntelliSenseにコメントが表示されて便利です。

様々な機能を搭載していますが、難解な要素は皆無ですし、メソッドやプロパティ等の数も知れているので詳細は省きます。コードやIntelliSense、オブジェクト ブラウザー辺りを参考に何とかしてもらえると有り難いです。

ColorSupplement.ColorDialog

ColorSupplement.ColorDialogは、Forms.ColorDialogの代用ではありますが、Forms.ColorDialogのUIやプロパティを踏襲していません。
とはいえ、『幾つかのプロパティを設定』→『モーダルウィンドウとして表示』→『プロパティから色を取り出す』という流れに変わりなく、大筋では大差ありません。

基本タブ 選定タブ ARGBタブ HSVタブ
ColorSupplement.ColorDialog

ColorSupplement.BrushDialog

ColorSupplement.BrushDialogは、System.Windows.Media.SolidColorBrush, LinearGradientBrush, RadialGradientBrushを作成できるダイアログボックスです。ImageBrushには対応していません。

線形グラデーション編集 放射グラデーション編集
ColorSupplement.BrushDialog

ソリューションについて

ソース

配布物にはソースも含まれています。本作は、作者が欲しい機能しか持たせていないので、足りない部分はどしどし改造してください。

※ソースを使用する上での注意

ソースフォルダに".vs", "obj", "bin"フォルダを含めていないため、Visual Studioでソリューション(*.sln)を開くと幾つかの影響が現れます。
ソリューションを開いたら、とりあえずビルドしてください。"obj"フォルダが生成され、デザイナが使えるようになります。
コード エディタにおいて、Windowへの参照箇所でエラーが発せられる場合があります。当該コードの対になるデザイン(XAMLファイル)を上書き保存することで解消されます。

その他

本クラスライブラリには、ファイルを生成したりレジストリを変更したりするコードは含まれていません。

制作後記

なんやかんやWPFアプリケーションを構想していたら「さて、どうしたものか…」ってなるのが、コモンダイアログ喪失問題。中でも色をどうやって選択してもらうかって所は、わりと出くわす場面だったりする。昔に創ったWindowsフォームアプリケーションをWPFで創り直そうなんて目論むと、出鼻をくじかれてしまう。
だからと言って、Windowsフォームのコモンダイアログを流用するのは、ちょっとイヤだ。WPFとは、見た目もさることながら扱うColor構造体も噛み合わず、面倒だし面白味も欠く。さりとて、毎度毎度色を選択するUIをこしらえるのも億劫だ。
ならば、それなりにちゃんとしたものを最初に一つ作って使い回しちゃおう、ということでクラスライブラリの自作です。物はついで、おまけ機能も付け足して、以前に創った『本見 彩』のサブシステム的な感じになればいいかな。

だけど、クラスライブラリという形態では「アプリ全体を見通せるように、全要素を一つのソリューション内で賄う」という作者の美学(制作方針)が崩れてしまう。ソースコードの公開がやり難くなるし、更新による互換性問題をもはらんでしまう。
ソリューションが溢れかえるのも見通しが悪いし、外部リソースへの参照も不明瞭。結局どちらが楽なのか、大きなジレンマではあるが、現時点ではやるかたなしか…。

参考・引用文献/拝借物

毎度、お世話になっております。大変有難く存じます。

リファレンス/サンプル

ツール