通过 WPF 应用程序启动时,Winform window 会缩小
Winform window gets shrinked when lauched through WPF Application
我已经创建了 WPF 应用程序。在这个应用中
- 我正在启动 win form exe。
- 稍后将 WPF window 作为此 win 窗体的父级。
- 当我以当前分辨率执行此应用程序时。一切正常
但是当我通过 4K 显示器启动同样的东西时 (3840 * 2100) 表格尺寸变小了。
我尝试了以下操作。
- 正在将 win 表单大小调整为 window。最大化。
- 正在创建 WPF 清单并取消注释 DPIaware 以使 WPF 应用程序成为 DPIaware。
- 正在操纵父级的大小 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]
我已经创建了 WPF 应用程序。在这个应用中
- 我正在启动 win form exe。
- 稍后将 WPF window 作为此 win 窗体的父级。
- 当我以当前分辨率执行此应用程序时。一切正常
但是当我通过 4K 显示器启动同样的东西时 (3840 * 2100) 表格尺寸变小了。
我尝试了以下操作。
- 正在将 win 表单大小调整为 window。最大化。
- 正在创建 WPF 清单并取消注释 DPIaware 以使 WPF 应用程序成为 DPIaware。
- 正在操纵父级的大小 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]