gpt4 book ai didi

wpf - 如何防止任务栏出现在 WPF 非全屏窗口中?

转载 作者:行者123 更新时间:2023-12-04 14:38:41 33 4
gpt4 key购买 nike

我有一个大型 C++ 代码库,带有全屏运行的 native Windows GUI。它的一部分应由显示在其顶部的 WPF 窗口进行交换。窗口设置如下:

<Window WindowState="Normal" 
WindowStyle="None"
ShowInTaskbar="False"
AllowsTransparency="True"
/>

这会将窗口无缝地融入应用程序的其余部分。窗口的调用是从 C++/CLI 完成的,如下所示:

Windows::Window^ w = window();
Windows::Interop::WindowInteropHelper iHelp(w);
iHelp.Owner = System::IntPtr(_parentHwnd);
w->Show();

_parentHwnd 是 native 应用程序的 HWND。如前所述,该应用程序始终全屏显示。当我现在单击 WPF 窗口时,将出现 Windows 任务栏。如何阻止任务栏出现

最佳答案

我已经使用这个类(一个想法是在网上某处找到的)来隐藏/显示任务栏:

public static class Taskbar
{
[DllImport("user32.dll")]
private static extern int FindWindow(string className, string windowText);
[DllImport("user32.dll")]
private static extern int ShowWindow(int hwnd, int command);

private const int SW_HIDE = 0;
private const int SW_SHOW = 1;

public static int Handle
{
get
{
return FindWindow("Shell_TrayWnd", "");
}
}
public static int StartHandle
{
get
{
return FindWindow("Button", "Start");
}
}

public static void Show()
{
ShowWindow(Handle, SW_SHOW);
ShowWindow(StartHandle, SW_SHOW);
}

public static void Hide()
{
ShowWindow(Handle, SW_HIDE);
ShowWindow(StartHandle, SW_HIDE);
}
}

适用于 Windows XP/Vista/7。

关于wpf - 如何防止任务栏出现在 WPF 非全屏窗口中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10877293/

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