他の質問にリンクしているWindows VistaのUIガイドラインを読んでいて、120 DPIに切り替えることができなければならないと述べました。さて、私は私のアプリをインストールして私の便利なVMを起動し、我々は何を得る... AAAAGH!大規模なUIが失敗!フォントサイズに依存しないUI:120 DPIに切り替えるとすべてが破損しましたか?
すべてがすべて混乱しています。一部のコンテナではテキストが十分ではありません。 「互いの隣に」配置されたいくつかのコントロールは、すべて一緒に押しつぶされ、離れて広がっています。いくつかのボタンは十分な高さではありません。私のListView
列は十分に広くはありません... eeek。
まったく違うアプローチが順番にあるように聞こえます。私の前の1つは、基本的に、VS2008のWindowsフォームデザイナーを使ってピクセルベースのレイアウトを作成していたと思います。 Windowsフォームに固執すると、FlowLayoutPanel
が役に立ちますが、過去には柔軟性がないことがわかりました。また、コンテナ(フォーム自体など)が十分に大きくない問題を解決することもできません。おそらくそれを行う方法がありますか?たぶんそのAutoSize
プロパティですか?
これは出荷時にWPFに移行するときのサインでもあります。私はそれがこの種のもののために特別に設計されているという印象を受けています。
基本的な問題は、これらに降りてくるようだ:
- 私はWindowsフォームに固執した場合、彼のユーザ設定を乗り切ることができ、フォントサイズに依存しないレイアウトを実現するために、すべてのトリックは何ですかフォントが大きい、またはディスプレイを120 DPIに設定していますか?
- ここではWPFに大きな利点がありますか?もしそうなら、それがスイッチに値すると私に納得させることができますか?
- フォントサイズに依存しないレイアウトの一般的なベストプラクティスは、.NETスタックまたは一般的にはありますか?
私は、アンカー、ドック、AutoSize、およびTableLayoutPanelsを使用して、サイズ変更可能なフォームに変換可能なUIを実現しました。しかし、 "XPスタイルのDPIスケーリング"チェックボックスがオフになっているDPI設定が高い場合、私のすべてのアプリケーションでぼやけたフォントが見つかっています。それを修正するためのヒント? –
@romkyns:あなたのアプリケーションが「高dpi対応」であると明記していない限り、あなたのアプリは他のバグのあるアプリと同じkludgeを取得します。あなたのアプリケーションが現在のdpiを尋ねると、あなたのアプリケーションは(それは96だと)嘘をつきます。そして、グラフィックスカードはあなたのためにあなたのフォームをスケールアップします - それはぼやけています。マイクロソフトでは、開発者が想定していることをやり遂げることを断念しました。そのため、誰もが拡大縮小を選択する必要があります。 Google: 'dpiAware'マニフェスト –