使用Xamarin在XAML中指定RGB颜色

时间:2016-04-15 07:43:52

标签: xaml xamarin xamarin.forms

我在我的应用中创建了一些应用程序样式,并希望按键使用一些明确的颜色。在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>

3 个答案:

答案 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类提供了许多构建颜色实例的方法

  • 命名颜色 - 常见命名颜色的集合,包括红色,绿色和蓝色。
  • FromHex - 类似于HTML中使用的语法的字符串值,例如&#34; 00FF00&#34;。
  • 可以选择将Alpha指定为第一对字符(&#34; CC00FF00&#34;)。
  • FromHsla - Hue,饱和度和亮度双值,可选alpha值(0.0-1.0)。
  • FromRgb - 红色,绿色和蓝色int值(0-255)。
  • FromRgba - 红色,绿色,蓝色和alpha int值(0-255)。
  • FromUint - 设置一个表示argb的双精度值。

参考:Using Colors in Xamarin.Forms

答案 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>