2016-04-15 264 views
6

我在我的应用程序中创建了一些应用程序样式,并且想要定义一些明确的颜色以供按键使用。在WPF XAML中,我将创建一个SolidColorBrush来定义RGB/ARGB值。在Xamarin XAML中,我是否需要将其转换为十六进制以在XAML中定义相同的颜色?下面的代码片段来自WPF XAML。用Xamarin在XAML中指定RGB颜色

<SolidColorBrush 
    x:Key="blueColor"> 
    <SolidColorBrush.Color> 
     <Color 
      A="255" 
      R="50" 
      G="150" 
      B="225" /> 
    </SolidColorBrush.Color> 
</SolidColorBrush> 
+0

有时你在写作后会觉得更好:)我只是试过这个,到目前为止似乎没问题。除去的SolidColorBrush和加入的关键颜色元件 <色彩 \t \t \t \t X:键= “blueColor” \t \t \t \t A = “255” \t \t \t \t R = “50” \t \t \t \t G = “150” \t \t \t \t B = “225”> \t \t \t –

+0

不工作.... :( –

回答

5

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中使用的语法类似的字符串值,例如“00FF00”。
  • Alpha可以选择性地指定为第一对字符(“CC00FF00”)。
  • FromHsla - 色调,饱和度和光度双值,可选alpha值(0.0-1.0)。
  • FromRgb - 红色,绿色和蓝色的int值(0-255)。
  • FromRgba - 红色,绿色,蓝色和alpha int值(0-255)。
  • FromUint - 设置一个表示argb的double值。

编号:Using Colors in Xamarin.Forms

+1

是的,我也读过这部分,RGB定义似乎不可用。所以我只需要转换为HEX。 –

+0

你能编辑你的答案是明确的吗? OP询问的问题是'用Xamarin在xaml中指定RGB颜色'(不是一个问题,但足够接近)。是“你不能”的答案,你必须转换为十六进制? –

1

在直接回答这个问题,你无法指定X:FactoryMethod = “FromRgb” 在XAML从资源RGB颜色指定。为了解决这个问题,你必须使用'FromHex'方法来指定颜色,并根据需要进行转换。

<Color x:Key="somethingGreenish" x:FactoryMethod="FromHex"> 
    <x:Arguments> 
     <x:String>#97cd75</x:String> 
    </x:Arguments> 
</Color> 
1

根据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通道的,但我只是测试它,并在5月30日,2017年,它似乎工作得很好。

但是,请注意,这似乎没有记录。 Xamarin.Forms "Colors" guide,与上面的代码一起,也没有提到它,所以这可能会改变,恕不另行通知。