WPF设置当前激活窗体(前景窗体)
生活随笔
收集整理的這篇文章主要介紹了
WPF设置当前激活窗体(前景窗体)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡單說一下背景,項目中重寫WPF的popup控件以后出現了一個問題,就是如果程序的主窗體不是當前鼠標操作的窗體(前景窗體),彈出的窗體會出現無法跟隨程序主窗體縮小而縮小的問題。
解決辦法,獲取程序主窗體句柄,在需要彈出popup窗體之前將其設為前景窗體。
核心代碼:
//hwndSource程序主窗體的句柄
var hwndSource = (PresentationSource.FromVisual(thi.Child)) as HwndSource;
接下來就調用windowsAPI設置為前景窗體
?[DllImport( "user32.dll ")] ??
? ? private static extern bool SetForegroundWindow(IntPtr hWnd);??
順便說一下,獲取程序窗體的句柄也可以使用WindowsAPI (但是我采用下面的方法沒有成功,可能類名和程序的標題名有錯誤吧)
?[DllImport("user32.dll ")]
? public static extern IntPtr FindWindow(string 類名, string 程序標題);
總結
以上是生活随笔為你收集整理的WPF设置当前激活窗体(前景窗体)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos NTP服务器搭建
- 下一篇: JAVA工具方法 —— JSON转XML