gpt4 book ai didi

.net - user32.dll FlashWindow 的托管替代品

转载 作者:行者123 更新时间:2023-12-01 12:01:14 25 4
gpt4 key购买 nike

在闪烁窗口标题栏和相应任务栏按钮的 .Net 应用程序中,为了吸引用户的注意力,使用了如下所示的 P/Invoke 代码:

[DllImport("user32.dll")]
private static extern bool FlashWindow(IntPtr hwnd, bool bInvert);

public static void FlashWindow(System.Windows.Forms.Form window)
{
FlashWindow(window.Handle, false);
}

如何在不使用 P/Invokes 的情况下触发相同的效果?具体来说,.Net 应用程序正在更新以在带有 Mono 的 Linux/Mac OS X 上完全运行。 有什么方法可以构建与 FlashWindow 或 FlashWindowEx 等效的托管对象?

最佳答案

你应该注意到微软自己的UI guidelines建议您不要这样做,除非事件确实需要立即关注。

Don't flash the taskbar button if the only thing the user has to do is activate the program, read a message, or see a change in status.

强烈建议,即使在跨平台应用程序中,也应遵循当前系统的 UI 指南。
在这种情况下,这取决于您尝试做什么,但需要进行猜测:

如果你真的想做闪烁窗口图标的等价物,OS X 上的等价物将是一个弹跳停靠图标(再次,人们 don't like this )。我不知道那是否被 cocoa# 包裹。

在 Linux 中,行为再次变得支离 splinter ,因为许多框架根本就没有任务栏的概念,而且您应该能够很好地使用您所在的任何框架。

关于.net - user32.dll FlashWindow 的托管替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187287/

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