Xamarin Froms XAML从App Resource获得颜色

时间:2018-03-07 10:22:18

标签: xamarin.forms

我在Xamarin Forms App中创建了一个颜色资源:

<Application ...>
    <Application.Resources>
        <Color x:Name="ColorLineSeparator">#cccccc</Color>
    </Application.Resources>
</Application>

我想在MainPage.xaml中使用它,如下所示:

<BoxView
            HeightRequest=".5"
            HorizontalOptions="FillAndExpand"
            BackgroundColor="[HOW TO USE IT HERE?]"/>

原始WPF处理此问题的方式如下:

<Button Background="{DynamicResource ResourceKey=ColorLineSeparator}" />

然而,它似乎不适用于Xamarin Forms Page。 它显示了这个错误:

  

找不到'ResourceKey'的属性,可绑定属性或事件,或   价值与财产之间的不匹配类型。

2 个答案:

答案 0 :(得分:1)

首先,您必须以正确的方式声明Application.Resources

<Application ...>
    <Application.Resources>
        <ResourceDictionary>
            <Color x:Key="ColorLineSeparator">#cccccc</Color>
        </ResourceDictionary>
    </Application.Resources>
</Application>

以这种方式声明的所有资源实际上都是静态的:

<BoxView BackgroundColor="{StaticResource ColorLineSeparator}"/>

这个东西有great official article

P.S。:启用XAMLC可以帮助您在将来识别此类错误。

答案 1 :(得分:0)

在资源中添加x:键:

<Color x:Key="MyColor">#cccccc</Color>

并使用它:

      <BoxView
        HeightRequest=".5"
        HorizontalOptions="FillAndExpand"
        BackgroundColor="{StaticResource MyColor}"/>