2

WPF アプリケーションを作成しました。このアプリケーションでは

  1. winフォームexeを起動しています。
  2. 後で、この win フォームの親として WPF ウィンドウを作成します。
  3. 現在の解像度でこのアプリケーションを実行すると。物事はうまくいく

しかし、4K モニター (3840 * 2100) で同じものを起動すると、フォームのサイズが縮小されます。

次のことを試しました。

  1. winフォームのサイズをウィンドウに合わせます。最大化。
  2. WPF マニフェストを作成し、DPIaware のコメントを解除して、WPF アプリケーションを DPIaware にします。
  3. 親ウィンドウのサイズを操作します。

どんな助けや提案も役に立ちます。(FYI : WinForms から同じ exe を起動しようとしても、この問題は発生しません)。

コード スニペット

/* mainwindow.xaml.cs*/
    var procInfo = new System.Diagnostics.ProcessStartInfo(ExeName, arguments);
    // Start the process
    var ProcessObj = System.Diagnostics.Process.Start(procInfo);
    var helper = new WindowInteropHelper(Window.GetWindow(this.grid1));
    SetParent(ProcessHandler, helper.Handle);

/* App.manifest */
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
  </application>
 
/*assemblyinfo.cs*/
[assembly: System.Windows.Media.DisableDpiAwareness]
4

1 に答える 1