WPF アプリケーションを作成しました。このアプリケーションでは
- winフォームexeを起動しています。
- 後で、この win フォームの親として WPF ウィンドウを作成します。
- 現在の解像度でこのアプリケーションを実行すると。物事はうまくいく
しかし、4K モニター (3840 * 2100) で同じものを起動すると、フォームのサイズが縮小されます。
次のことを試しました。
- winフォームのサイズをウィンドウに合わせます。最大化。
- WPF マニフェストを作成し、DPIaware のコメントを解除して、WPF アプリケーションを DPIaware にします。
- 親ウィンドウのサイズを操作します。
どんな助けや提案も役に立ちます。(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]