如何从Xamarin Forms中的C#中的App.xaml访问颜色?

时间:2017-04-18 08:37:41

标签: xamarin xamarin.forms

在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引用颜色?

3 个答案:

答案 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