更改Windows Phone系统托盘颜色

3
有没有办法将Windows手机上的系统托盘颜色从黑色改为白色?因为我的应用具有白色背景,所以我希望系统托盘也是白色的。

系统托盘是什么意思?你是指应用程序栏吗? - Alastair Pitts
不,这里指的是系统托盘,在那里显示电池和时间。 - JacobTheDev
3个回答

9
您可以在页面的XAML中实现此操作:
<phone:PhoneApplicationPage
    ...
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    shell:SystemTray.IsVisible="True"
    shell:SystemTray.BackgroundColor="Blue">
    ...

有没有可能只声明一次而不是每个页面都声明(例如在App.xaml中)? - CAMOBAP
我不确定。你可以创建自己的基础页面类并在那里完成,但这比仅在每个页面上定义它更费力且会带来其他问题。不过,你可以在应用程序的资源字典中定义一个颜色资源,并使用 {StaticResource} 标记扩展在此处使用它。 - Filip Skakun

6

你能给我一个清晰的例子吗?我对这种编程方式非常陌生,我只知道一些jQuery的入门知识。 - JacobTheDev
2
搞定了。SystemTray.SetBackgroundColor(this, Colors.White);SystemTray.SetForegroundColor(this, Colors.Black); - JacobTheDev

0

如果你想从XAML中进行更改,可以使用这个方法。

<phone:PhoneApplicationPage   .........................

xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
shell:SystemTray.BackgroundColor="{StaticResource AppThemeColor }" 
shell:SystemTray.IsVisible="True">

其中,“AppThemeColor”是我应用程序样式资源中预定义的颜色。

如果您想从C#代码更改它,则可以在OnNavigatedTo()事件中使用以下代码。

SystemTray.BackgroundColor = Color.FromArgb(255, 250, 110, 40); //background color
SystemTray.ForegroundColor = Color.FromArgb(120, 245, 245, 245);//foreground if you need
SystemTray.Opacity = 0.9; // opacity of background color

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