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
形態種別:
フリーソフトウェア(ソース付き)

ダウンロード

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

概要

WPFアプリケーションで使用できる、フォント選択ダイアログを提供するクラスライブラリ(DLL)です。つまり、サンプル実行ファイル(exe)はDLLを使った例でありおまけです。

使い方

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

メソッド・プロパティ・メンバの詳細については、数も知れているので省きます。コード, IntelliSense, オブジェクト ブラウザー辺りで把握できることを願っています。

FontSupplement.FontDialog

FontSupplement.FontDialogは、Forms.FontDialogの代用として制作しましたが、Forms.FontDialogのUIやプロパティを模倣していません。
とはいえ、『幾つかのプロパティを設定し、モーダルウィンドウとして表示し、選択されたフォントや装飾フラグ等を受け取る』という流れは同様です。

フォント選択ダイアログ
FontSupplement.FontDialog

ソリューションについて

ソース

配布物にはソースも含まれています。本作は、簡易な機能しか持っていないので、必要とあらばドンドン改造してみてください。

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

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

その他

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

制作後記

色選択ダイアログ(WPF補助色品)をこさえたんで、フォント選択ダイアログも創ってみた。もちろん、創りたいアプリでフォントを選択したかったんだけど。

だけど、Windowsだか.NETだかにおけるフォント関連って、情報が少ない上になかなかの難物で、何をどうしたらいいのやら。シンボル用フォントを判別して…とかさっぱり。
なので、何とかネットで見つけ出したサンプルコードを、そのままマルっと鵜呑みにしてコーディングしちゃってます。なんとも消化不良だけど、とりあえず使える形になってよかった。

フォントのサイズって、いつの間にピクセル単位で指定するようになったんだ? ず~っとポイント単位だと思い込んでいた。Windowsフォーム時代のデフォルトは"9"で、WPFに移行したら"12"になってたから「アレ?」とは思ったけど、「高解像度化も進んだことだし、少し大きくして読み易くしたのかな」ぐらいにしか考えていなかった。
1pt = 1/72in。96dpi環境(Windowsの標準)では、72pt = 96px ってことだから、9pt * (96 / 72) = 12px で辻褄が合うわけか。なるほどね。

参考・引用文献/拝借物

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

リファレンス/サンプル

ツール