我已经宣布了一种颜色,我将在我的应用程序中大量使用,我希望能够在页面中调用该特定颜色。这种颜色最有可能用于XAML以及后面的代码。在App.xaml中我有
<Color x:Name="Blue" A="255" R="35" G="85" B="145"/>
但是我如何在我的Page的UI和代码中调用它?
实际上要注意,上面在App.xaml中设置颜色会在启动时出现调试错误吗?
public App()
{
// Standard XAML initialization
InitializeComponent(); //XamlParseException occurs here
...
}
编辑**
SolidColorBrush更新无法正常工作
我在XAML中声明了Slider控件和两个ToggleSwitch控件,我希望在XAML中更改Slider前景并更改后面代码中的ToggleSwitch控件。两者都没有工作
的App.xaml
<Color x:Key="ThemeColorBlue" A="255" R="35" G="85" B="145"/>
<SolidColorBrush x:Key="ThemeBrushBlue" Color="{StaticResource ThemeColorBlue}"/>
所以当尝试在XAML中更改Slider控件前景时,使用
我没有错误Foreground="{StaticResource ThemeBrushBlue}"
但在更改后面的代码中的ToggleSwitch前景时,我收到一条错误,指出Cannot implicitly convert type 'object' to 'System.Windows.Media.Brush'
this.ToggleSwitch.SwitchForeground = Application.Current.Resources["ThemeBrushBlue"];
答案 0 :(得分:20)
您通常会使用Application.Resources
而不是Key
将颜色添加到Name
:
<Application.Resources>
<Color x:Key="Blue" A="255" R="35" G="85" B="145"/>
</Application.Resources>
现在您可以在XAML中以StaticResource
的形式访问它,例如:
<SolidColorBrush Color="{StaticResource Blue}"/>
或像这样的代码:
var color = (Color)Application.Current.Resources["Blue"];
答案 1 :(得分:-1)
我认为问题是
<SolidColorBrush x:Key="ThemeBrushBlue" Color="{StaticResource ThemeColorBlue}"/>
重复颜色,它应该有效:
<SolidColorBrush x:Key="ThemeBrushBlue" Color="#235591"/>