- PR -

フォントが等幅かプロポーショナルか調べる

1
投稿者投稿内容
victor
常連さん
会議室デビュー日: 2002/10/29
投稿数: 46
お住まい・勤務地: アスンシオン - パラグアイ
投稿日時: 2006-11-02 05:17
あるフォントを選択し、それが 等幅フォントか それとも プロポーショナルフォントか を調べることは出来ますか?。

Fontクラスのプロパティやメソッドの中にはそれらしいものは見つからなかったのですが・・・

言語は C#(.NET 2.0)です。
HIRO
大ベテラン
会議室デビュー日: 2002/06/21
投稿数: 109
投稿日時: 2006-11-02 08:39
GetTextMetricsメソッドはどうでしょう?
(使ったことはないのでサンプルを示せませんが...)
_________________
--------------------------------------------
HIRO's.NET PowerShell,VB.NET,C#のTipsを掲載しています
HIRO's.NET Blog PowerShell,VB.NET,C#を中心とした技術ネ
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2006-11-02 09:08
こんにちは。

引用:

victorさんの書き込み (2006-11-02 05:17) より:
あるフォントを選択し、それが 等幅フォントか それとも プロポーショナルフォントか を調べることは出来ますか?。

言語は C#(.NET 2.0)です。



試したこと無いですが、LOGFONT構造体のPitchAndFamilyを見れば調べられるんじゃないでしょうか。
Font.ToLogFont メソッドが使えそうですが、
「このメソッドでは UnmanagedCode アクセス許可が要求されます。」
とあります。

APIを使うんだったら、GDI の GetObjectでLOGFONTが取得できそうです。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-11-02 09:19
厳密には等幅フォントとプロポーショナルフォントの区別は無かったと思います。全てがプロポーショナルフォントです。例えば一見等幅フォントに見えるMSゴシックも文字サイズによっては微妙にずれる事になりますよね。

もし行うとしたら文字幅を取得して比較するとか・・・
victor
常連さん
会議室デビュー日: 2002/10/29
投稿数: 46
お住まい・勤務地: アスンシオン - パラグアイ
投稿日時: 2006-11-08 00:58
皆さん、アドバイスをありがとうございます。
GraphicsのMeasureStringメソッドを使って二つの違う文字の幅を比べて調べるという手を使いました。
1

スキルアップ/キャリアアップ(JOB@IT)