如何像在Android中那样收集单个文件中的所有颜色代码, 通过引用该文件来使用它们。现在,我正在使用xaml
<Entry Placeholder="Enter name" PlaceholderColor="#177245" ></Entry>
<Entry Placeholder="Enter name" PlaceholderColor="#C04000" ></Entry>
在Xamarin.Forms
中,我看起来像
<Entry Placeholder="Enter name" PlaceholderColor="@color/DimGray" ></Entry>
答案 0 :(得分:2)
在App.xaml中,您可以创建资源字典并在其中声明颜色:
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MyApp.App"
xmlns:local="clr-namespace:MyApp;assembly=MyApp">
<Application.Resources>
<ResourceDictionary>
<Color x:Key="ThemeColor>#177245</Color>
<Color x:Key="BackgroundColor>#C04000</Color>
</ResourceDictionary>
</Application.Resources>
</Application>
现在,您只需在元素中设置color属性,如下所示:
<Entry Placeholder="Enter name" PlaceholderColor="{StaticResource ThemeColor}" />
答案 1 :(得分:1)
使用您的颜色创建文件:
using Xamarin.Forms;
public class ColorConsts
{
public Color MyColor1 { get; } = Color.Gray;
public Color MyColor2 { get; } = Color.Blue;
}
将对象添加到资源并绑定颜色:
<ContentPage.Resources>
<local:ColorConsts x:Key="colors"/>
</ContentPage.Resources>
<StackLayout>
<!-- Place new controls here -->
<Entry Placeholder="Enter name" PlaceholderColor="{Binding Source={StaticResource colors},Path=MyColor1}" ></Entry>
</StackLayout>
如果您不想添加到所有页面,请在app.xaml中进行定义:
<Application xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App16.App"
xmlns:local="clr-namespace:App16"
>
<Application.Resources>
<local:ColorConsts x:Key="colors"/>
</Application.Resources>
</Application>
相同的方法可用于数字const,本地化,并且可以参数化xaml中的所有内容。
这种方法的优点是您可以使consts类INotifyPropertyChanged并在运行时更改颜色。