我搜索了论坛但仍然没有答案似乎是正确的。
当用户在浏览器中操作时,我需要显示来自系统托盘应用的消息通知。
我希望此通知显示在所有内容之上,但即使我将其设置为TopMost或TopLevel或BringToFront或Focus,我也无法实现我想要的效果。
我正在使用一个简单的Windows窗体,我使用系统托盘应用程序中的ShowDialog显示它。
请帮帮我:)。
PS:如果我从systray应用程序启动通知表单而没有其他应用程序打开或聚焦它工作正常,我只是无法在活动的浏览器窗口前显示它
答案 0 :(得分:0)
NameOfYourWindow myTopForm = new NameOfYourWindow();
myTopForm.Owner = App.Current.MainWindow;
myTopForm.ShowInTaskbar = false;
myTopForm.TopMost = true;
myTopForm.ShowDialog();
答案 1 :(得分:0)
#region SetForegroundWindow
[DllImport("kernel32.dll", ExactSpelling = true)]
public static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetForegroundWindow(IntPtr hWnd);
#endregion
static void Main(string[] args)
{
while (true)
{
SetForegroundWindow(GetConsoleWindow());
}
}