我在我的应用中创建了一些应用程序样式,并希望按键使用一些明确的颜色。在WPF XAML中,我将创建一个SolidColorBrush来定义RGB / ARGB值。在Xamarin XAML中,我是否需要将其转换为十六进制以在XAML中定义相同的颜色?下面的代码片段来自WPF XAML。
<SolidColorBrush
x:Key="blueColor">
<SolidColorBrush.Color>
<Color
A="255"
R="50"
G="150"
B="225" />
</SolidColorBrush.Color>
</SolidColorBrush>
答案 0 :(得分:7)
Xamarin.Forms
提供了跨平台Color
类。
使用Xaml:
使用定义的颜色名称或此处显示的十六进制表示法也可以在Xaml中轻松引用颜色:
<Label Text="Sea color" BackgroundColor="Aqua" />
<Label Text="RGB" BackgroundColor="#00FF00" />
<Label Text="Alpha plus RGB" BackgroundColor="#CC00FF00" />
<Label Text="Tiny RGB" BackgroundColor="#0F0" />
<Label Text="Tiny Alpha plus RGB" BackgroundColor="#C0F0" />
Color类提供了许多构建颜色实例的方法
答案 1 :(得分:2)
根据Xamarin的WorkingWithColors样本,您可以这样做:
<Color
x:Key="BlueColor">
<x:Arguments>
<x:Double>.4</x:Double> <!-- R/255 -->
<x:Double>.62</x:Double> <!-- G/255 -->
<x:Double>.95</x:Double> <!-- B/255 -->
<x:Double>.2</x:Double> <!-- A: 0.0-1.0 -->
</x:Arguments>
</Color>
他们的示例没有显示alpha通道的使用,但我刚刚测试了它,截至2017年5月30日,它似乎工作正常。
然而,请注意,这似乎没有记录。与上述代码一致的Xamarin.Forms "Colors" guide也没有提及,因此如有更改,恕不另行通知。
答案 2 :(得分:1)
直接回答问题,你不能指定x:FactoryMethod =&#34; FromRgb&#34;在xaml中,用于从资源中指定RGB中的颜色。要解决此问题,您必须使用&#39; FromHex&#39;来指定颜色。适当的方法和转换,例如
<Color x:Key="somethingGreenish" x:FactoryMethod="FromHex">
<x:Arguments>
<x:String>#97cd75</x:String>
</x:Arguments>
</Color>