C# 如何从页面中的App.xaml获取颜色值

C# 如何从页面中的App.xaml获取颜色值,c#,xaml,windows-phone-7,windows-phone-8,C#,Xaml,Windows Phone 7,Windows Phone 8,我已经声明了一种我将在应用程序中大量使用的颜色,我希望能够在页面中调用该特定颜色。这种颜色很可能用于XAML以及代码隐藏。在App.xaml中,我有 <Color x:Name="Blue" A="255" R="35" G="85" B="145"/> 编辑** SolidColorBrush的更新不工作 我在XAML中声明了一个滑块控件和两个ToggleSwitch控件,我希望在XAML中更改滑块前景,并在代码隐藏中更改ToggleSwitch控件。两者都不起作用 App.xa

我已经声明了一种我将在应用程序中大量使用的颜色,我希望能够在页面中调用该特定颜色。这种颜色很可能用于XAML以及代码隐藏。在App.xaml中,我有

<Color x:Name="Blue" A="255" R="35" G="85" B="145"/>
编辑**

SolidColorBrush的更新不工作

我在XAML中声明了一个滑块控件和两个ToggleSwitch控件,我希望在XAML中更改滑块前景,并在代码隐藏中更改ToggleSwitch控件。两者都不起作用

App.xaml

<Color x:Key="ThemeColorBlue" A="255" R="35" G="85" B="145"/>
<SolidColorBrush x:Key="ThemeBrushBlue" Color="{StaticResource ThemeColorBlue}"/>
但是在代码隐藏中更改ToggleSwitch前台时,我收到一个错误,说明
无法将类型“object”隐式转换为“System.Windows.Media.Brush”

this.ToggleSwitch.SwitchForeground = Application.Current.Resources["ThemeBrushBlue"];

您通常会使用
键而不是
名称将颜色添加到
应用程序。参考资料

<Application.Resources>
    <Color x:Key="Blue" A="255" R="35" G="85" B="145"/>
</Application.Resources>
或者用这样的代码:

var color = (Color)Application.Current.Resources["Blue"];

我想问题是

<SolidColorBrush x:Key="ThemeBrushBlue" Color="{StaticResource ThemeColorBlue}"/>

只需重复颜色,它就可以工作:

<SolidColorBrush x:Key="ThemeBrushBlue" Color="#235591"/>


我在实施您的解决方案时遇到问题。我在上面的原始问题中添加了一个编辑,也许你可以看一看并提供一些建议?错误消息不能隐式地将类型“object”转换为“System.Windows.Media.Brush”说明了一切。表达式
Application.Current.Resources[“themebrushbluse”]
返回一个
对象
,但
切换开关。switch前台
需要一个
画笔
。您必须添加一个显式强制转换(正如我在回答中所做的那样):
ToggleSwitch.SwitchForeground=(Brush)Application.Current.Resources[“themebrushbluse”]
我发现问题后,你一定也添加了这个。我实际上使用了
,因为在设置
颜色时,文本
255
出现初始化错误。但是,我如何在代码隐藏中使用它?为ToggleSwitch设置
Application.Current.Resources[“ThemeBrushBlue”]
会给类型对象一个笔刷错误。您需要进行强制转换:
this.ToggleSwitch.SwitchForeground=(SolidColorBrush)Application.Current.Resources[“ThemeBrushBlue”]
,但在XAML
SwitchForeground=”中更容易执行此操作{StaticResource ThemeBrushBlue}“
谢谢,我相信我已经得到了它。
ToggleSwitch
前台属性特别需要类型为
Brush
的强制转换,而不是
SolidColorBrush
,这正是我遇到问题的地方。
var color = (Color)Application.Current.Resources["Blue"];
<SolidColorBrush x:Key="ThemeBrushBlue" Color="{StaticResource ThemeColorBlue}"/>
<SolidColorBrush x:Key="ThemeBrushBlue" Color="#235591"/>