C# 如何从页面中的App.xaml获取颜色值
我已经声明了一种我将在应用程序中大量使用的颜色,我希望能够在页面中调用该特定颜色。这种颜色很可能用于XAML以及代码隐藏。在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
<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”]
,但在XAMLSwitchForeground=”中更容易执行此操作{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"/>