2016-04-15 267 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,與上面的代碼一起,也沒有提到它,所以這可能會改變,恕不另行通知。