在App.xaml中我有这段代码:
<Application.Resources>
<ResourceDictionary>
<Color x:Key="Yellow">#ffd966</Color>
</ResourceDictionary>
</Application.Resources>
在C#中我有这段代码:
public Color BackgroundColor
{
get { return IsSelected ? Color.Yellow : Color.White; }
}
我想用App.xaml中的颜色更改Color.Yellow。如何从C#中的App.xaml引用颜色?
答案 0 :(得分:14)
isSelected ? (Color) Application.Current.Resources["Yellow"] : Color.White;
我认为不需要Conversion Color.FromHex(),因为您将资源定义为颜色。希望有所帮助。
答案 1 :(得分:2)
您应该可以像Application.Current.Resources["Yellow"]
一样访问它。
如果是颜色,它会更像;
public Color BackgroundColor
{
get { return IsSelected ? Application.Current.Resources["Yellow"].ToString() : Color.White }
}
答案 2 :(得分:0)
以防万一Color
中引用了MergedDictionaries
:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<resources:Colors />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
您需要像这样获得它
Application.Current.Resources.TryGetValue("Yellow", out var yellowColor)
如果您使用Application.Current.Resources["Yellow"]
,它将引发未找到密钥的异常。
HIH