13

これは、フォント サイズを変更する方法に関する質問ではありません。TextBoxむしろ、ご存知のように、いつでも 1 つの色、1 つのフォント、および 1 つのフォント サイズのみをサポートするプレーン コントロール内にあるときに、入力 (または貼り付け) するとフォントのサイズが自動的に変化するのはなぜですか。

私のコード:

using(FontDialog d = new FontDialog())
{
   // The usual properties...
   if(d.ShowDialog() == DialogResult.OK)
   {
      textbox1.Font = d.Font;
   }
}

フォントは8ptに設定されています。プレーン テキストを貼り付けると、上の行は 9 ~ 10 ポイントになり、下の行は著しく小さくなります (約 8 ポイント)。

どのフォント、フォント スタイル、またはフォント サイズを選択しても問題ありません。これは起こり続けます!

ここに画像の説明を入力

アップデート

これまでご協力いただきありがとうございました。以下の最近の質問に回答するには:

私のアプリは .NET 4.5 を対象としています。

Form、TextBox、および FontDialog を呼び出す Button だけを使用して、新しい Windows Forms プロジェクトでこの問題を再現できたので、コードに混乱はありません。

ビデオ ドライバーに関する質問に答えるために、数週間前に購入したアプリのサポートが必要だったのですが、DXDiag を実行するように言われました。ビデオ カード ドライバーが古くなっているとの連絡がありましたが、実行しませんでした。いつも数ヶ月おきにチェックしているからだと思います。その後、製造元の Web サイトにアクセスすると、システム用の最新のドライバーが既にインストールされていると表示されました。

Windows Update によると、利用可能な新しい更新プログラムはありません。ただし、新しいバージョンのドライバーをもう一度確認します。


また、FontDialog.ShowDialog() を呼び出す前に、TextBox で使用されているフォントを表示する新しい空のプロジェクトでテストを行いました。それが表示された後、新しいフォントが設定され、すべてが一致した後でも、まだあります。テキストボックス内のフォント/フォントサイズを変更した後の問題。

4

1 に答える 1

3

あなたが使用している高 DPI 画面は、正確に 96 DPI の倍数を使用していないと思われます。この場合、Windows はアプリケーションを 96 DPI の仮想画面にレンダリングし、結果を新しい DPI に再スケーリングします。DPI が正確に 96 の倍数ではない場合、アプリケーションの表示が再スケーリングされたときに丸めエラーが発生し、その結果、フォントが不均一に見えることがあります。

DPI をMicrosoft の高 DPI Win32 アプリケーションガイドの付録 Cにあるサイズのいずれかに設定してみてください。

于 2013-06-05T09:46:56.460 に答える