2011-08-12 2 views
0

C#でいくつかのコントロールを作成し、使用しています。しかし、カスタムセット(フォント)のDPIを使用しているユーザーのPCでは、125%または150%とも言えます - 私のコントロールは新しいスケールを継承し、正しく表示されません。.NETカスタムコントロール:フォントサイズの変更を防止する/親からフォントスケール/サイズを継承する

このスケールを継承するコントロールを無効にする方法を知りたいと思います。

+1

C#は単なる言語です。 winforms、wpf、asp、silverlightなどのコントロールがあります。特別なタグを追加する可能性があります。また、少なくともコントロールの基本クラスを知っておくと便利です。 –

+1

DPIスケーリングは非常に重要です。オフにすることはできません。それが何であれ、「正しく表示されない」問題を修正してください。 –

答えて

4

私はこれがあなたが探している答えではないことを知っています。しかし、なぜ人々が自分たちのシステムをそのまま設定しているのかを考えてみてください。それはビジョンの問題であるか、まさにその視線である可能性があります。はい、スケーリングディプレイを処理することは苦労する可能性がありますが、ユーザーが製品を読み書きできないため、製品を無視する方がよいでしょう。

2

独自のアプリケーションを構築する場合は、フォームのAutoScaleModeプロパティを "None"に設定して、システムのDPI設定に基づいてフォームのフォントの自動サイズ変更を無効にすることができます。

他のユーザーが独自のフォームに統合するコントロールを構築するだけの場合は、コントロールのFontプロパティをオーバーライドして、あらかじめ決められたハードコードされた値に設定することをお勧めします。

あなたはこれをしたくないと考えます。 - ユーザーはシステムDPIを調整しています。その選択肢を無効にすると、コントロールを使用できなくなる可能性が高くなります。それら。問題がシステムのDPIが変更されたときにコントロールが正しくスケーリングされない場合は、WinformのAutoSize機能を使用して、TableLayoutPanelなどの変更のサイズに合わせて自動的に調整されるレイアウトパネルを使用します(AutoSizeは適切に設定されます)。行と列)またはFlowLayoutPanel。

+0

質問への実際の解決のために+1、ありがとう。私の状況では、これをオフにしたUserControlsの束を既に含む別のソフトウェアパッケージにインポートされたUserControlを作成する必要があります。私はそれをオフにしない場合、私のUserControlは、これらの設定を継承する唯一のものになります。さらに、そのソフトウェアパッケージ内のデフォルト設定は、他のすべてのUserControlの固定設定とはまったく異なります。だから私の状況では、ルックアンドフィールの継承機能は、既存のUserControlsによって壊れていると私はそれに対処する必要があります。 –

-1

ユーザーがカスタムフォントを持っているときにコントロールが正しく表示されない場合は、間違ったことをしていて、「正しく使用していません」。 another SO questionには、Winformsでカスタムフォントサイズを考慮する方法を尋ねるものがあります。それは厳しくない。

関連する問題