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);
}
第一个问题:它的作品,但我已经选择了其他的窗口中“删除”我的应用程序的焦点(焦点后不会再次放弃,即使我点击我的窗口)。 第二个问题:当我移动窗口或调整窗口大小时,当我放下窗口时会发生这些修改。
您有任何想法/链接/文档吗? 谢谢:)