C# 更改systray图标颜色

C# 更改systray图标颜色,c#,windows-phone-8,C#,Windows Phone 8,我想更改系统托盘中图标的颜色(或者要预先调整大小,请将其设置为黑色主题-使用白色图标) 在我的应用程序中,我有特定的配色方案,我正在使用它。我将系统托盘(电池、信号强度、wifi强度等)的背景色设置为特定颜色,当我使用深色主题时,效果良好 但是,当我将手机主题更改为“亮”时,我希望使用白色图标,因为我的系统托盘设置为黑色背景(使应用程序感觉像一个整体),但无论我将其设置为哪种颜色,systray中的图标仍然是黑色的 我正在用XAML进行设置,代码如下: ... shell:SystemTray.

我想更改系统托盘中图标的颜色(或者要预先调整大小,请将其设置为黑色主题-使用白色图标)

在我的应用程序中,我有特定的配色方案,我正在使用它。我将系统托盘(电池、信号强度、wifi强度等)的背景色设置为特定颜色,当我使用深色主题时,效果良好

但是,当我将手机主题更改为“亮”时,我希望使用白色图标,因为我的系统托盘设置为黑色背景(使应用程序感觉像一个整体),但无论我将其设置为哪种颜色,systray中的图标仍然是黑色的

我正在用XAML进行设置,代码如下:

...
shell:SystemTray.IsVisible="True"
shell:SystemTray.BackgroundColor="#FF222222"
shell:SystemTray.ForegroundColor="#FFFFFFFF">

我做错了什么。甚至可以更改前景色主题吗?

我认为您可能引用了错误的程序集。这可以通过使用
Microsoft.Phone.Shell帮助您;assembly=Microsoft.Phone

您可以在XAML代码中简单地使用它

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

从代码中,您可以尝试:

SystemTray.ForegroundColor = new System.Windows.Media.Color() { R = _r, G = _g, B = _b };

移除不透明度,如=>#2222222不,我引用的程序集是
xmlns:shell=“clr namespace:Microsoft.Phone.shell;assembly=Microsoft.Phone”
。我的问题不在于背景,背景设置有效,而在于前景设置无效。@mishan:你试过像
'Black'
这样的简单颜色吗。但在我思考的时候,我可能正在模拟器中测试它。它可能在一部真正的手机上工作。在手机从测试人员那里返回并再次测试之前,我需要等待一段时间。