通过 WPF 应用程序启动时,Winform window 会缩小

Winform window gets shrinked when lauched through WPF Application

我已经创建了 WPF 应用程序。在这个应用中

  1. 我正在启动 win form exe。
  2. 稍后将 WPF window 作为此 win 窗体的父级。
  3. 当我以当前分辨率执行此应用程序时。一切正常

但是当我通过 4K 显示器启动同样的东西时 (3840 * 2100) 表格尺寸变小了。

我尝试了以下操作。

  1. 正在将 win 表单大小调整为 window。最大化。
  2. 正在创建 WPF 清单并取消注释 DPIaware 以使 WPF 应用程序成为 DPIaware。
  3. 正在操纵父级的大小 window。

任何帮助或建议都会有所帮助。 (仅供参考:当我尝试从 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]

使用以下任一解决方案使 WPF dpi 无法感知:

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

    /*assemblyinfo.cs*/
     [assembly: System.Windows.Media.DisableDpiAwareness]