2017-04-04 17 views
5

従来の.net windowsフォームアプリケーションがあります。 私たちはすでにそのほとんどをWebアプリケーションに置き換えましたが、Windowsタスクのアプリケーションを管理タスクに使用しています。同じ4kモニタでwinformが異なって表示される理由

このアプリケーションを4kモニターで使用すると、実際には見苦しくなり、わかりやすいものになります。

しかし、外観はシステム上の他のモニタによって変わります。 テストは、ディスプレイポート経由で接続された4kモニタを備えたlenovo 430で実行されます。 ラップトップモニターの解像度は1920/1080で、4kモニターの解像度は3840/2160です。ディスプレイのスケーリングは常に200%です。

以下のスクリーンショットのすべてが4kモニターで撮影されました。アクティブ両方のモニタと

  1. 一つ試験
  2. 第2のスクリーンの一つの試験のみ

enter image description here (システムの利用可能な唯一のモニターを意味する)、ノートブックモニターの一つのテストが閉じ

  • enter image description here enter image description here

    私は、 dpiAware/dpiAwarenessを変更せずに4kでうまく見えません。

    私の質問は次のとおりです: アクティブなモニタによってアプリケーションが変わるのはなぜですか?そして、どのような "種類"の外観が取られるかを制御する方法はありますか?

  • +2

    私が知っていることに基づいて、これが起こる理由の一部は、あなたのwinformsのレイアウトプロパティを設定する方法のためです。たとえば、 'AutoSize'が' True'に設定されていると、モニタの解像度が変更されるたびにフォームのサイズに影響します。ほとんどの人がWPF over Winformsを好む理由は、AnchorとDockです。このプロパティを適切に設定しないと、3840/2160から1920/1080までのモニターで、「抽象」(ここでペインターのジョークを作ろうとする)のwinformが得られます。 –

    答えて

    2

    3があります。アプリケーションの種類:

    • 意識
    • システムDPI阿波のDPIありませんここでは、モニターDPI意識

    詳細パー

  • RE: https://msdn.microsoft.com/de-de/library/windows/desktop/dn469266(v=vs.85).aspx

    あなたはapp.configをして、アプリケーションのDPI-意識を設定することができます。

    <appSettings> 
        <add key="EnableWindowsFormsHighDpiAutoResizing" value="false" /> 
    </appSettings> 
    

    とapp.manifest:

    <application xmlns="urn:schemas-microsoft-com:asm.v3"> 
        <windowsSettings> 
        <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</dpiAware> 
        </windowsSettings> 
    </application> 
    

    DPI> = 150%のスケーリングがさらに制御できます。 アプリケーションのRMB - >プロパティ - >互換性 - >高DPIでのスケーリング

    デフォルトでは、DPIスケーリングは高DPIではディスエーブルです。だから、すべての声がボックスの外で動作します。おそらく、この設定の1つがデフォルトではありませんか?特にexeファイルのRMBプロパティーの設定は?

  • 3

    Microsoftはこの問題を認識していると.NET 4.7 Frameworkを使用してそれを修正:たぶん、あなたはこのことを認識しているが、それは前に言及していなかった

    https://blogs.msdn.microsoft.com/dotnet/2017/04/05/announcing-the-net-framework-4-7/

    +0

    4.7リリースノートから:「このリリースには、WindowsフォームDPI対応アプリケーションの高DPI向上の大きなセットが含まれています。しかし、私の例はDPI Awareではありません。それはちょうど秒のスクリーンによって異なって見える。とにかくそれを4.7でテストします。 – Manuel

    +0

    リリースノートの最も重要な文章は、Windowsフォームがラスターグラフィックスに基づいていると私は個人的に考えると、200%のスケーリングがアプリケーションが異なるモニター内で変更される理由に重い役割を果たすと思います。しかしそれはまだ推測です。 – Kris

    関連する問題