Xamarin文档和博客中有很多地方(here's one,甚至docs都没有涵盖这个问题),它们引用了ResourceDictionary
中的颜色定义,看起来像这样:
<Application.Resources>
<ResourceDictionary>
<Color x:Key="backgroundColor">#33302E</Color>
<Color x:Key="textColor">White</Color>
</ResourceDictionary>
</Application.Resources>
但是,这似乎是个老新闻,因为如果您现在尝试尝试,则会遇到编译错误- The type 'Color' does not support direct content
。
当前规范似乎是使用FactoryMethod
(如FromHsla
)并传递数字颜色参数。但是,目前是否存在使用XAML在Color
中定义Red
键(按名称,理想情况下,像ResourceDictionary
一样)的简洁语法?
答案 0 :(得分:0)
如果您通过ResourceDictionary
定义颜色,则只能用十六进制(有或没有alpha通道)声明颜色,枚举颜色实际上是通过Color class上的代码定义的,您可以创建颜色这样列出
namespace YourNamespace
{
public static class Colors
{
public statis Color BackgroundColor = Color.FromHex("#33302E");
...
}
}
答案 1 :(得分:-1)
您需要尝试“ SolidColorBrush”无法直接设置颜色。如下所示。
<!--#region COLORS-->
<SolidColorBrush x:Key="SCBCement" Color="#FF3B6983"/>
<SolidColorBrush x:Key="SCBOrange" Color="#FFFFAC48"/>
<SolidColorBrush x:Key="SCBLightGrey" Color="#FF3C3C3C"/>
<SolidColorBrush x:Key="SCBLightBrown" Color="#FF933A3A"/>
<SolidColorBrush x:Key="SCBYes" Color="#FF10BD10"/>
<SolidColorBrush x:Key="SCBNo" Color="#FFBD2010"/>
<!--#endregion-->
然后按如下所示使用它:
<ListView ItemContainerStyle="{StaticResource StyleListViewItem}" Background="{x:Null}" BorderBrush="{x:Null}" ItemsSource="{Binding Value}" Foreground="{StaticResource SCBCement}">