系统托盘进度指示器仅在全景页面上不可见

Posted

技术标签:

【中文标题】系统托盘进度指示器仅在全景页面上不可见【英文标题】:System tray progress indicator not visible only on panorama page 【发布时间】:2012-03-13 20:33:26 【问题描述】:

我将 Jeff Wilcox 的解决方案用于global progress indicator。除了我拥有的全景页面外,所有的连接都很简单并且运行良好。问题是进度指示器根本不可见,它在这一页上。

通过我的数据服务进行的所有调用都使用设置IsLoading = true 的相同包装器,因此我已经验证这是有效的。我还在其中添加了一个Thread.Sleep,以确保在设置IsLoading = false 之前呼叫不会很快返回。

全景控件有什么不同可以隐藏它吗?我正在将背景设置为图像,但我将其拉出并确保将主布局网格背景设置为透明以防万一。

是否应该在 xaml 中设置其他任何内容以确保其可见?

*请注意这不是旧的 PerformanceProgressBar 控件

【问题讨论】:

【参考方案1】:

是的,XAML 中有一些东西,如果你没有设置它,你可能会踢自己(发生在我身上好几次)检查这个属性:

<phone:PhoneApplicationPage
 xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
 xmlns:SystemTray.IsVisible="True">

还要确保您的进度条确实有显示空间。进度条距离顶部 32 像素,所以一般来说,您希望内容的高度仅占 768 像素。

我相信,默认情况下,当你使用 Visual Studio 创建全景页面时,高度设置为 800,SystemTray.IsVisible 设置为 false。

【讨论】:

谢谢。我查看了 10 次 SystemTray 设置,最后在第 11 次检查时找到它,并看到 IsVisible 属性设置为 false。我想这对于全景页面是有意义的。我会喜欢那个 32 像素的。不确定此页面上的系统托盘进度条是否值得 是的,在全景页面上使用它可能会破坏微软的设计愿景。为了两全其美,我所做的是编辑全景标题的模板,使它们实际上更小,在位置上移动一些东西,直到那里有系统托盘信息看起来不错。我认为是那些灰色地带之一。但是,如果您将背景颜色设置为透明,或者将不透明度设置为零(我不记得是哪个),您可以恢复这些像素,并且当用户滑动时,系统托盘只会在您的页面上方一层。 您也可以设置SystemTray.Opacity="0" 以使系统托盘完全透明(然后不占用32 px的屏幕空间)。 我在全景页面上根本无法显示系统托盘。看不出为什么。高度设置为 768 和 xmlns:SystemTray.Isvisible="True"。知道它可能是什么吗? 当您说“高度设置为 768”时,您是指全景页面的高度吗?

以上是关于系统托盘进度指示器仅在全景页面上不可见的主要内容,如果未能解决你的问题,请参考以下文章

windows phone silverlight 8 app 系统托盘颜色变化

Winforms 通知图标在系统托盘中重复

如何把程序最小化到托盘图标

Qt开发实现系统托盘,托盘菜单,托盘消息

Electron setLoginItemSettings 在托盘菜单应用程序上不起作用

Qt 实现系统托盘,托盘菜单,托盘消息