gpt4 book ai didi

wpf - 如果另一个应用程序处于事件状态,则在程序启动期间任务栏中缺少应用程序图标

转载 作者:行者123 更新时间:2023-12-03 18:04:32 28 4
gpt4 key购买 nike

我写了一个 WPF 应用程序,它有一个自定义的(不是标准的)图标。也实现了启动画面。

如果我启动应用程序并等待它被加载,图标会正确显示。

但是,如果我在显示启动画面之前启动我的应用程序并切换到另一个应用程序(例如 Outlook),则 Windows 任务栏中不会显示该图标。

如果我通过 alt+tab 切换到我的应用程序,则该图标会直接出现。

有任何想法吗?

最佳答案

我在用另一种语言(PowerBuilder,而不是基于 .Net 的语言)编写的程序中遇到了同样的问题,该程序的行为完全相同。如果它影响的不仅仅是 WPF,则必须是 Windows 问题。所以必须有办法解决这个问题。

如果“我的”任务栏项目未处于事件状态,则该框架可能会以错误的方式要求它。

将焦点设置回应用程序时,任务栏图标会重新出现。

一个粗略的解决方案是这样做(伪代码):

application.Hide();
application.Show()

另一种解决方案(伪代码):
application.SetRedraw(False);
application.Show();
application.SetRedraw(True);

但这会产生令人讨厌的眨眼。仅“重新激活”或“重绘”工具栏的解决方案会更好!

问题的原因(在我的非 WPF 情况下)是程序在主窗口的构造函数完成之前显示了一个 UI。 IE。在所有初始化代码完成之前强制重绘/显示窗口。这可能会导致 Windows 认为窗口不是应用程序,而是初始屏幕的“对话框”,而不是分配任务栏项目。当我设法删除过早显示主 GUI 的代码时,问题就消失了。

关于wpf - 如果另一个应用程序处于事件状态,则在程序启动期间任务栏中缺少应用程序图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744309/

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