如何在Windows Phone 8.1(Windows Runtime,通用)中更改系统栏进度指示器的颜色?

3
如何在Windows Phone 8.1(Windows Runtime,Universal)中更改系统栏进度指示器颜色,就像Facebook Beta应用程序一样。
图像: http://imgur.com/4Mm4SWV 注:
1-手机强调色不是白色(FGS)... 2-系统栏前景色已经钩到了白色... 3-我已经尝试过更改App.Resources如“PhoneAccentColor”,但没有效果...

1
根据这个http://social.msdn.microsoft.com/Forums/sqlserver/en-US/37ebb381-dd45-46f6-9f77-6439983670ca/override-color-of-statusbarprogressindicator?forum=wpdevelop,没有办法。但是,您可以在顶部添加自己的进度条,它将以相同的方式工作,只是您可以按照自己的喜好进行样式设置。 - Igor Ralic
是的,我知道这个...我真的很好奇微软是如何做到这一点的...我认为该应用程序具有更多的系统API访问权限...我已经测试过了,发现进度指示器不是一个控制进度条... - Breno Santos
也许微软内部的一些人可以回答这个问题,因为在互联网上找不到答案。 - Breno Santos
1个回答

0

编辑:理解问题错误。找到解决方案后会回来。

要实现这一点,您必须更改StatusBar ForegroundColor属性。由于没有通过XAML更改它的方法,因此必须通过代码后台完成,如下所示:

StatusBar statusBar = StatusBar.GetForCurrentView();
statusbar.ForegroundColor = Colors.Black;

///And then show or hide the Progressindicator like so
await statusBar.ProgressIndicator.ShowAsync();
await statusBar.ProgressIndicator.HideAsync();

我正在使用这个,它完美地工作。

有关StatusBar(以及其内置的ProgressIndicator)的更多信息,请查看Shawn Kendrot的这些博客文章:

Windows Phone XAML应用程序中新StatusBar与SystemTray之间的区别

在Windows Phone 8.1 XAML应用程序中显示系统ProgressIndicator


"...2 - 系统栏前景色已经被钩到了白色..." - Breno Santos
你能给我们展示一下你代码的例子吗?因为它在我这里可以运行。我刚刚将 StatusBar 的 ForegroundColor 属性改成了蓝色,现在它完美地工作了。这是 StatusBar 的截图和 ProgressIndicator 的另一个截图。 - Mentha Suaveolens
我创建了一个静态类来处理,但我的代码与上面的代码相同...在你的截图中,进度指示器的颜色是 手机强调色,而不是状态栏前景色... - Breno Santos
相信我,这不是手机强调色的问题,我的应用程序中已经覆盖了手机强调色,并将其设置为MediumSeaGreen,作为资源在我的App.xaml中。(<SolidColorBrush x:Key="PhoneAccentBrush" Color="MediumSeaGreen"/>)我只是将上面示例中的第二行代码更改为Colors.Blue。我可以将其更改为任何颜色并且它都能正常工作。请提供您正在使用的一些代码,以便我们可以找出问题所在。我认为您可能在某个地方有一些代码正在覆盖它。 - Mentha Suaveolens
1
我已经尝试了覆盖PhoneAccentBrush,但是没有用...我按照你说的做了,但还是不行...我的帮助类:http://pastebin.com/evp4k07d我是这样使用的...await Project.Helpers.StatusBarHelper.ShowLoading("测试"); await Task.Delay(3000); Project.Helpers.StatusBarHelper.HideLoading(); - Breno Santos
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接