gpt4 book ai didi

wpf - 关于关注WPF的一些问题

转载 作者:可可西里 更新时间:2023-11-01 09:38:59 26 4
gpt4 key购买 nike

我对专注于 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 );
}

第一个问题:它可以工作,但我必须选择另一个窗口来“移除”我的应用程序的焦点(在不再给予焦点之后,即使我点击我的窗口)。第二个问题:当我移动或调整窗口大小时,修改会在我放下窗口时发生。

您有任何想法/链接/文档吗?谢谢:)

最佳答案

您可能想看看这个 SO 帖子:Make a form not focusable in C# .答案特定于 Windows 窗体。然而,主要部分是使用 Win32 函数完成的,所以也许您可以从那里得到一些想法...

关于wpf - 关于关注WPF的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2771511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com