2010-11-25 32 views
3

Windows VistaでVS2008を使用してWindowsフォームアプリケーションを開発しています。先日、Windows XPでアプリケーションを実行しようとしましたが、GUI上のすべてがうんざりでした。私はWindows Vistaで120 Dpi設定を使用してアプリケーションを開発し、私のXPは96 dpiに設定されていることに気付きました。Visual StudioとDPIの問題

私のアプリケーションにはいくつかのUserControlがあり、DPIを96に変更するとVisual Studio自体も縮小されます。最近、多くの人が高いDPIでVisual Studioを使用しています。だから私のGUIがVisual Studioとランタイムの両方でうんざりしないようにするにはどうすればいいですか?

編集:私はこの問題に関する記事をいくつか読んでおり、AutoScaleModeをNoneに設定する必要があることを知りました。しかし、それでも私のラベルがオペレーティングシステムによって適用される新しいDPI設定に適応するのを妨げるものではありません。他のGUI要素にサイズが固定されているため、ラベルの拡大/縮小を防ぐ方法が必要です。

答えて

0

私はこの問題に取り組んでからしばらくしていましたが、AutoSize = Falseを設定してみてください。さらに、UseCompatibleTextRendering = Trueが役に立つかもしれません。

0

これはかなり古い質問ですが、私は自分の解決策/意見を分けたいと思います。私は最近同様の問題に遭遇した。実際には、私はVisual Studioに自分のWinFormsをそのままにしておきたいが、実行時にはそれを拡大することが望ましい。私はそれを正しく行うための一貫した要約は見つけられませんでした。いくつかの読書と実験の後、私はこの解決に来た:

  • フォームのAutoScaleMode = Fontを保つ。
  • あなたのフォームデザイナでのセット:フォームでFont = MS Sans; 11px
  • CTORは、InitializeComponent後、設定:AutoScaleModeが残っているのでFont = SystemFonts.DefaultFont
  • は、いずれかのマニフェストまたはAPI関数でSetProcessDPIAwareness

を通じて、DPI-意識を有効にしますアクティブ、すべてのDPI変更魔法の作品、モニタごとのDPI意識さえも。残っているのは、スケーリングがうまく機能するようにフォームを設計することです。

私のブログに詳細を書いた:http://www.sgrottel.de/?p=1581&lang=en

関連する問題