0

(いいえ、このコードベースを .NET Core 以降にアップグレードすることはまだできません。)

主に Windows フォームで、部分的に WPF のアプリがあります。実行時にフォント サイズが変更された場合、WPF は正しく反応します。代わりに、Windows フォームは、再起動しない限り、何かが変更されたことさえ認識していないようです。たとえばControl.DeviceDpiプロパティ(4.7 まで導入されなかった) は、現在の値ではなく、起動時の正確な値を示します。

app.manifestは持っています:

  <asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>True/PM</dpiAware>
    </asmv3:windowsSettings>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
      <dpiAwareness>PerMonitorV2, PerMonitor</dpiAwareness>
    </asmv3:windowsSettings>
  </asmv3:application>

app.configは持っています:

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

しかし、4.7ではイベント導入されました。Control.DpiChanged

それでも、オーバーライドWndProcしてリッスンするとWM_DPICHANGED、それ発生します。このコードは、イベントが発生することを示唆しているようです。

どうやら、このコードは条件付きでオフにするため、そうではありません。しかし、どの部分が資格がないのかわかりません。(私は Windows 10 21H1 を使用しているため、RS2 よりも新しいものです。)

4

0 に答える 0