3

私は、mono(gmcs)でコンパイルされ、WinForms 2.0ライブラリを使用してユーザーインターフェイスをレンダリングするLinux用のC#アプリケーションを作成しました。私のアプリケーションは私のコンピューターでは問題なく見えますが、私の顧客の1人は、フォントサイズが大きいコンピューター(Fedora / OLPC)を使用しており、自動スケーリングは完全には機能しませんでした(ユーザーコントロールのサイズが維持されている間、テキストが大きくなりました同じ)。

フォントサイズを大きくしてUbuntuコンピューターで問題を再現できれ問題を修正できると確信しています(すべてのコントロールに適切なAutoScaleModeとAutoScaleDimensionsを設定することで)。 しかし、[システム]->[設定]->[外観]ダイアログでシステムのフォントサイズを大きくしようとすると、フォントサイズの設定がWinformsでレンダリングされたUIに影響を与えないようです。

では、Mono WinFormsはどのようにしてシステムのフォントサイズを決定するのでしょうか? コンピューターでより大きなサイズを選択させるにはどうすればよいですか?

Ubuntu9.10とMonowinforms2.4.2.3+dfsg-2を使用しています。

重要な場合は、アプリケーションがVisual Studioから移植されたため、コントロールのフォントは次のように.Designer.csファイルに設定されます。

label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
4

3 に答える 3

1

AutoScalingを無効にするのがおそらく最善です。

http://www.mono-project.com/FAQ:_Winforms

于 2010-12-22T15:48:26.113 に答える
0

(ハンス・パッサントはこの質問に正解しましたが、彼の答えはもうここにはないので、私自身の質問に答えます。)

Mono Winformsで使用されるフォントサイズは、Ubuntuの解像度(DPI)設定によって決定されます。この設定には、[システム]->[設定]->[外観]->[フォント]->[詳細]に移動してアクセスできます。

于 2011-03-13T18:40:25.370 に答える
0

より一般的な答えは次のとおりです。私の実験によると、Monoは値に基づいて実際のフォントサイズを計算しXft.dpiます。を使用して取得でき、を使用xrdb -query Xft.dpiして実行時に動的に設定できますecho Xft.dpi: VALUE | xrdb

一部のアプリは値を変更した直後にUIを更新し、他のアプリ(Monoを含む)は起動時にのみUIをチェックすることに注意してください。

David Graysonの回答で言及されているUbuntuのSystem -> Preferences -> Appearance -> Fonts -> Details設定は、おそらく同じ値を変更します。

于 2019-01-04T23:09:43.417 に答える