
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で質問しましょう!
似たような質問が見つかりました
- 固定IP Latexの初期Fontに関する質問です。 1 2023/05/23 19:17
- HTML・CSS Web font 会社のホームページを作成についてですが、webフォントを使用することを検討しており 4 2022/11/04 10:36
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- CAD・DTP vectorworks、winとmacでデータを共有する場合 1 2023/02/20 16:41
- PHP アンドロイドスマホでのphp echoの文字サイズ 1 2023/05/13 15:15
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- HTML・CSS CSSでサイトの背景に画像を組み込みたいのですが反映されません 2 2022/11/22 16:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
処理内容がほぼ同じメソッドの...
-
VBPをダブルクリックするとたま...
-
【sendkeysメソッドが動かずに...
-
Labelコントロールに数字を代入...
-
CALLされていないメソッドを見...
-
javascriptからjavaを呼び出したい
-
final修飾子を使っているのに、...
-
配列のメソッド
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
VB.netで、シリアル通信のタイ...
-
エクセルVBAにおけるON TIMEメ...
-
0歳児の指しゃぶりに関して
-
VBAでSaveAs使用し、指定してい...
-
JAVA言語,JSPによるクイズシス...
-
DataGridViewでセルクリックイ...
-
Excel VBA でExcelを終了したい...
-
C#.net Define文
-
コマンドプロンプト実行後に画...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
DataGridViewでセルクリックイ...
-
【sendkeysメソッドが動かずに...
-
コマンドプロンプト実行後に画...
-
VBA コピーが出来ません…!
-
ウィンドウを最前面にできません
-
JSPで<SELECT>の中にDBから持っ...
-
javascriptからjavaを呼び出したい
-
VBPをダブルクリックするとたま...
-
eclipse-Tomcatでのデバッグに...
-
Application.Wait の参照設定
-
エクセルVBAにおけるON TIMEメ...
-
配列のメソッド
-
エクセルのマクロでプリンタを...
-
final修飾子を使っているのに、...
-
drawStringで文字間隔の調整
-
Excel VBA でExcelを終了したい...
-
worksheets & rows メソッドは...
-
CALLされていないメソッドを見...
-
vbaエクセルマクロ RemoveDupli...
おすすめ情報