系统托盘进度指示器仅在全景页面上不可见
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 系统托盘颜色变化