12

別の開発者と WinForms アプリケーションで作業していますが、自動スケーリングに関連する外観に大きな問題があります。

私のシステム (Sony VAIO) は、このメニューでデフォルトで 125% になっています。

表示スケーリング

私が知る限り、125% は DPI を 120 に設定し、デフォルトのフォント サイズ (メニューなど) を 11pt に設定します。他の開発者のシステムでは、彼のデフォルトは 100% (96 dpi、9pt フォント) です。よくわかりませんが、私たちを悲しませているのは DPI だけだと思います。

この問題は、テキストのサイズが正しくなく、他のコントロールを覆っているか、間隔が広すぎる (最後に誰がデザイナーで開いたかによって異なります) という形で現れます。私が知る限り、すべてContainerControlの は に設定されてAutoScaleMode.Inheritおり、トップレベルのフォームはAutoScaleMode.Dpiです。これは他のほとんどの人が使用するものですか?

4

3 に答える 3

5

私のアプリケーションの1つで同じ問題が発生しました。答えは、それを WPF に移動することでした。まだ WinForms を使用していたときの解決策は、実行可能ファイルを 2 つ用意することでした。1 つは 96DPI で開発され、もう 1 つは 120DPI で開発されました。2 倍の労力を要しましたが、レイアウト構成を試してみましたが成功しませんでした。コントロールが 96DPI で正常に表示されていた場合、120DPI に切り替えると、コントロールはウィンドウのアプリケーションから外れていました。およびその逆。

WPF は、この厄介な問題に対する唯一の解決策です。

于 2012-07-12T14:00:46.020 に答える
0

これは、フォーム内のコンポーネントの固定に問題がある可能性があります。たとえば、コンポーネントが四隅すべてに固定されておらず、dpi が変更された場合、書式設定が影響を受ける可能性があります。

コンピューターの dpi を変更してデザイナーを開いたとき、書式設定の問題は見られませんでした... もう少し情報が役立つかもしれません。どのコンポーネントが互いにカバーしていますか?

于 2012-07-05T21:25:18.243 に答える
0

最終的に、私たちの解決策は、 を設定して Auto-scalingを無効AutoScaleMode = AutoScaleMode.Noneにすることでした。物を慎重に配置する必要がありました (そして、必要以上に大きなギャップを残す必要がありました) が、少なくとも Auto-Scale は機能せず、物事を台無しにしました。

私の高い画面設定により、VisualStudio の一部でさえアーティファクトが見られるため、これは大きな問題のようです。

于 2012-11-18T05:51:10.913 に答える