C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

FontDialogが選択したフォントサイズと異なる値を返す

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■103335 / inTopicNo.1)  FontDialogが選択したフォントサイズと異なる値を返す
  
□投稿者/ アブサン (1回)-(2024/10/08(Tue) 16:59:19)

分類:[C#] 

こんにちは

C# + .Net8 WinForm で開発しています。

FontDialog を使用しているのですが
Windows OSのディスプレイ設定で拡大率を100%以外に変更すると
FontDialog に渡したフォントサイズと異なる値が選択され
ユーザ操作により選択したフォントサイズと異なる値が返ります。

例えば9ptを渡すと7ptが選択されます。
画面で9ptを選択すると11.25ptが返ります。

DPIに依存した値に勝手に変換されてしまっている???

FontDialog のプロパティを調べてみても該当する設定を
見つけられませんでした。

回避方法をお教えいただきたいです。
よろしくお願いします。
引用返信 編集キー/
■103336 / inTopicNo.2)  Re[1]: FontDialogが選択したフォントサイズと異なる値を返す
□投稿者/ とっちゃん (834回)-(2024/10/08(Tue) 21:37:15)
No103335 (アブサン さん) に返信
> DPIに依存した値に勝手に変換されてしまっている???
>
そうです。
pt を画面DPIの倍率で再算出した値を設定する必要があります。
多分リファレンスされてないんじゃないかな?
昔 API で使っていて、それっぽいドキュメントは見つけられなかった。


> 回避方法をお教えいただきたいです。

FontDialog にわたすフォントのサイズを
FontSize * 72 / 画面DPI で計算しなおして渡せば
意図した値になると思います。

引用返信 編集キー/
■103337 / inTopicNo.3)  Re[2]: FontDialogが選択したフォントサイズと異なる値を返す
□投稿者/ アブサン (2回)-(2024/10/09(Wed) 09:22:33)
No103336 (とっちゃん さん) に返信

ご回答ありがとうございます。
試してみます!

とっちゃんさんには、はるか昔にも大変お世話になったことがあります。
本当に助かります!

引用返信 編集キー/
■103338 / inTopicNo.4)  Re[3]: FontDialogが選択したフォントサイズと異なる値を返す
□投稿者/ アブサン (3回)-(2024/10/09(Wed) 15:06:51)
No103336 (とっちゃん さん) に返信

DPI計算で期待値となりました。
ありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ