2012-09-12 8 views
5

私の現在のモニターでは、DPIの設定を120ピクセル/インチ(Windowsではデフォルトとして推奨)のほうが好みです。しかし、フォームを設計した後、1インチあたり120ピクセルを使用しないシステムでは、フォームが誤ってレイアウトされることがよくあります。WinFormsデザイナを使用する場合、常にDPIを96に設定する必要がありますか?

デザイナを使用するたびにディスプレイの設定を1インチあたり96ピクセルに設定する必要がありますか?

また、他の開発者が異なるDPIを持っている場合、いくつかの問題があります。デザイナーでフォームを開き、テキストエディットコントロールのようなものを動かすと、自動的にサイズ変更されることが突然見つかる。次に、他のコントロールとはサイズが違うコントロールが1つあり、私たちは混乱しています。

P.S.私は関連する記事を読んだ。彼らはすべて興味深いですが、私の質問に答えなかった。

How to control the font DPI in .NET WinForms app

C# WinForms disable DPI scaling

WinForms Different DPI Layouts

DPI not scaling properly

Visual Studio and DPI issue

+0


は、私は次の二つの記事を見つけた実験とインターネット検索の数時間後に上記のガイドラインを思い付い是非、DPIを絶えず変更してレイアウトを正しく行う方法を見つけてください。これは間違いなくあなたがそれを出荷した後に起こるだろう。あなたは砂の中であなたの頭をつけることを好むならば、それを設定された値に保つことだけを考えます。 –

+0

さまざまな設定でレイアウトをテストするためにDPIを変更します。しかし、デザイナーを使うときに私は1つのDPIに固執すべきですか?異なるDPI設定がデザイナーと一緒に使用されているようですが、異なるDPIでフォームを編集するたびにコントロールを再レイアウトし、微妙に移動させて一貫した結果を得ることは難しいでしょう。 Eee。多分私は自分の質問に答えました。私はデザイナーを使用するときに1つのDPIに固執するかもしれません。他の人がすでにそれをやっているのか、それとも他の方法があるのか​​どうか疑問に思っています。 –

答えて

1

私は別の値にあなたの解像度を設定することは永久にあなたを助けるとは思いません。問題は、dpiを変更するときに問題がある、つまり、フォームレイアウトが異なるdpiを処理できないということです。

異なるdpisでテストして、フォーム表示に問題があるかどうかを確認する以外は、絶対的な解決策はありません。問題の原因を解明するのは難しいことではなく、かなり早急に避けるべきことを学びます。

+1

私はしばらくの間、WinForm開発を行ってきましたが、私はまだ避けるべきことを学んでいません。 :) –

+0

私が言っていることは、あなたがいろいろなdpiでテストすれば、すぐにあなたのフォームが異なったdpi設定でよりうまく対処できるようになるということです。 – kristianp

4

いいえWinFormsデザイナを使用する場合、常にDPIを96に設定する必要はありません。

AutoScaleModeプロパティをDpiに設定すると、デザイナーはフォームのAutoScaleDimensionsプロパティのdesigner.csファイルに現在のシステムDpiを書き込みます。設計者が異なるDpiを持つシステムで使用される場合、この情報はフォームのサイズを変更するために使用され、設計者は異なるDpiで使用できます。

私は他のスケーリングモードを試してみましたが、これはうまくいきませんでした。 'None'は実行時にコントロールが拡大されないことを意味し、 'Font'は丸め誤差の問題を抱えていたようで、表示設定Dpiが変更されたときにコントロールサイズがわずかに変化してエラーが発生する可能性があります。

また、フォームに追加されたUserControlでは、AutoScaleModeをInheritに設定するのが最善であることがわかりました。 Dpiを使用すると、その上のコントロールは2度スケールが変更され、正しく配置されなくなります。

http://msdn.microsoft.com/en-us/library/ms229605.aspx

と::

http://kbalertz.com/967578/Child-controls-UserControl-clipped-system-lower.aspx

関連する問題