【问题标题】:Xamarin Froms XAML get color from App ResourceXamarin Forms XAML 从应用资源中获取颜色
【发布时间】:2018-03-07 10:22:18
【问题描述】:

我在 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 表单页面中不起作用。 它显示此错误:

找不到“ResourceKey”的属性、可绑定属性或事件,或者 值和属性的类型不匹配。

【问题讨论】:

    标签: xamarin.forms


    【解决方案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 可能会帮助您在将来识别此类错误。

    【讨论】:

    • 好的,它适用于 ResourceDictionary 和 StaticResource。谢谢。
    【解决方案2】:

    在您的资源中添加 x:Key:

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

    并使用它:

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

    【讨论】:

      猜你喜欢
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 2023-03-11
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多