如何从全球资源中使用颜色?

时间:2017-03-16 22:15:47

标签: xaml colors xamarin.forms resourcedictionary

我想在app.xaml上设置我的资源,然后在应用程序的不同视图中使用它,但是当我设置颜色应用程序崩溃时,有人可以帮助我吗?

的App.xaml

 <Application.Resources>
    <ResourceDictionary>
        <Color x:Key="Primary">#FFC107</Color>
    </ResourceDictionary>
</Application.Resources>

在StackLayout中使用它

    <StackLayout Orientation="Vertical" BackgroundColor="{StaticResource Primary}">

3 个答案:

答案 0 :(得分:3)

您是否在App.xaml.cs中调用了InitializeComponent?

答案 1 :(得分:2)

你需要使用静态资源,我找到了一个很好的资源:

https://blog.xamarin.com/easy-app-theming-with-xamarin-forms-styles/

所以你需要做以下事情:

1-在App.xaml中的应用级定义ResourceDictionary

<Application
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="MonkeyTweet.App">
    <Application.Resources>
        <ResourceDictionary>
            <Color x:Key="backgroundColor">#33302E</Color>
            <Color x:Key="textColor">White</Color>
        </ResourceDictionary>
    </Application.Resources>
</Application>

2-使用StaticResource标记扩展来引用预定义资源:

 <Label Text="{Binding Text}" TextColor = "{StaticResource textColor}"/>

答案 2 :(得分:1)

BackgroundColor="{DynamicResource Primary}"

它是DynamicResource,而不是StaticResource。

以下是我的代码的示例:

App.xaml

<Color x:Key="titleColor">Green</Color>

和page.xaml有

TextColor="{DynamicResource titleColor}"