我在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'的属性,可绑定属性或事件,或 价值与财产之间的不匹配类型。
答案 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}"/>