
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ランキング
-
mainメソッドのthrows節で設定...
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
0歳児の指しゃぶりに関して
-
javascriptからjavaを呼び出したい
-
引数は省略できません。とのコ...
-
DataGridViewでセルクリックイ...
-
ヘルパーメソッドとはなんですか?
-
boolean型のフィールドとゲッタ...
-
VBA/FIND関数を使っての先頭文...
-
VBPをダブルクリックするとたま...
-
.ToStringのありなし
-
final修飾子を使っているのに、...
-
エラーの意味を
-
マインスイーパの作り方
-
エクセルVBAにおけるON TIMEメ...
-
メソッドのエラー
-
DBunitの期待値についての質問...
-
c#でC言語のstrtokに...
-
ListViewにて行追加
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
【sendkeysメソッドが動かずに...
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
DataGridViewでセルクリックイ...
-
コマンドプロンプト実行後に画...
-
0歳児の指しゃぶりに関して
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
配列のメソッド
-
CALLされていないメソッドを見...
-
final修飾子を使っているのに、...
-
Labelコントロールに数字を代入...
-
VBPをダブルクリックするとたま...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
Application.Wait の参照設定
-
C#.net Define文
-
C# 演算 最大値 最小値 表現の仕方
-
Excel VBA でExcelを終了したい...
おすすめ情報