WPF:如何使表单的所有者成为调用应用程序

本文关键字:调用 应用程序 所有者 何使 表单 WPF | 更新日期: 2023-09-27 18:13:11

我的WPF应用程序是由一个C程序(非托管)调用的。我想让WPF应用程序留在屏幕上的地方,呼叫应用程序。我有双显示器。

所以我想让我的WPF窗体WindowStartupLocation="CenterOwner"并设置所有者为调用应用程序。

我可以通过

获得呼叫应用程序
Process.GetProcessById(CallingProcessID)

下一步如何设置WPF窗口所有者为呼叫应用程序?

更新:这个问题的目的是使WPF窗口全部停留在调用程序所在的屏幕上。

WPF:如何使表单的所有者成为调用应用程序

假设您有一个非托管应用程序(HWND)的窗口句柄,您可以使用WindowInteropHelper将该HWND设置为您的WPF窗口的父窗口。

WindowInteropHelper wih = new WindowInteropHelper(myWpfWindow);
wih.Owner = unmanagedOwnerHwnd;

Owner属性是IntPtr类型,所以这应该可以解决您的问题。