
C#で開発をしています。
指定した高さに最も近い高さをもつフォントサイズを取得したいのですが現在
int fontsize = 1;
float height = 90;
Font myFont = new Font("MS UI Gothic", fontsize );
//高さ90に近いフォントサイズを取得
while(myFont.GetHeight(e.Graphics) < height)
{
myFont = new Font("MS UI Gothic", fontsize );
fontsize += 0.001f;
}
とつくり的にはこんな感じでとれることはとれたのですが
もっとスマートな方法、簡単な方法はないのでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
指定した高さ (単位:Pixel) のフォントが使いたいわけではなく,
指定した行間 (単位:Pixel) のフォントが使いたいのですね。
前者であれば,コンストラクタで GraphicsUnit.Pixel を指定するだけの話なのですが,
後者の場合,FontFamily オブジェクトを作り,GetLineSpacing メソッドと GetEmHeight メソッドから計算して Font を生成することになります。
var style = FontStyle.Regular;
var requestHeight = 90.0f;
var fontFamily = new FontFamily("MS UI Gothic");
var fontSize = requestHeight * fontFamily.GetEmHeight(style) / fontFamily.GetLineSpacing(style);
var font = new Font(fontFamily, fontSize, GraphicsUnit.Pixel);
References)
MSDN: Font コンストラクター (String, Single, GraphicsUnit)
http://msdn.microsoft.com/ja-jp/library/fza59xh0 …
MSDN: GraphicsUnit 列挙体
http://msdn.microsoft.com/ja-jp/library/system.d …
MSDN: GetLineSpacing メソッド
http://msdn.microsoft.com/ja-jp/library/system.d …
MSDN: GetEmHeight メソッド
http://msdn.microsoft.com/ja-jp/library/system.d …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
ODBCでMoveNextがうまく動作し...
-
C#で右からnカラム目に文字を挿...
-
0歳児の指しゃぶりに関して
-
Writer & PrintWriter
-
PDFファイルから別ウィンドウで...
-
仕様に沿って3つの整数の最大値...
-
JSPで<SELECT>の中にDBから持っ...
-
IE制御でのタブの処理について
-
final修飾子を使っているのに、...
-
配列のメソッド
-
Application.Wait の参照設定
-
mainメソッドのthrows節で設定...
-
「CA2202: オブジェクトを複数...
-
変数名の付け方
-
「タイプ初期化子が例外をスロ...
-
プログラムの変数名にするとど...
-
ゲーム画面(JFrame)のサイズ変...
-
Cstring(日本語含む)をcharに...
-
クラスモジュールの使い方が詳...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
0歳児の指しゃぶりに関して
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
boolean型のフィールドとゲッタ...
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
eclipse-Tomcatでのデバッグに...
-
CALLされていないメソッドを見...
-
FEM解析の読み方は?
-
エクセルVBAにおけるON TIMEメ...
-
Application.Wait の参照設定
-
コマンドプロンプト実行後に画...
-
VBA コピーが出来ません…!
-
drawStringで文字間隔の調整
おすすめ情報