直接上代码
using WinRT;
...
[ComImport]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid("EECDBF0E-BAE9-4CB6-A68E-9598E1CB57BB")]
internal interface IWindowNative
{
IntPtr WindowHandle { get; }
}
...
通过以下方法获取句柄
m_window = new MainWindow();
var windowNative = m_window.As<IWindowNative>();
m_windowHandle = windowNative.WindowHandle;
也可以使用NuGet包 PInvoke.User32
m_windowhandle = PInvoke.User32.GetActiveWindow();
通过win32API最大化最小化窗口:
IntPtr hwnd = (App.Current as App).MainWindowWindowHandle;
PInvoke.User32.ShowWindow(hwnd, PInvoke.User32.WindowShowStyle.SW_MAXIMIZE);
参考: