3
我在關注WPF時遇到了一些問題。 我想創建一個窗口,總是在頂部,並且永遠不會獲得焦點(即使我們點擊它)。關於關注WPF的一些問題
這裏是我的解決方案:
public partial class SkinWindow : Window
{
public SkinWindow()
{
InitializeComponent();
Loaded += (object sender, RoutedEventArgs e) => SetNoActiveWindow();
}
private void SetNoActiveWindow()
{
WindowInteropHelper helper = new WindowInteropHelper(this);
SetWindowLong(helper.Handle, GWL_EXSTYLE, WS_EX_NOACTIVATE);
LockSetForegroundWindow(LSFW_LOCK);
}
const int GWL_EXSTYLE = -20;
const int WS_EX_NOACTIVATE = 134217728;
const int LSFW_LOCK = 1;
[DllImport("user32")]
public static extern bool LockSetForegroundWindow(uint UINT);
[DllImport("user32")]
public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
}
第一個問題:它的作品,但我已經選擇了其他的窗口中「刪除」我的應用程序的焦點(焦點後不會再次放棄,即使我點擊我的窗口)。 第二個問題:當我移動窗口或調整窗口大小時,當我放下窗口時會發生這些修改。
您有任何想法/鏈接/文檔嗎? 謝謝:)