如何将字符串转换为颜色?

4 c# xamarin.forms

我需要将字符串转换为颜色,因为颜色是作为字符串动态出现的。

错误说:

无法将字符串隐式转换为 Xamarin.Form.Color

string BackgroundColor = (string)testData["Views"][index][name][i]["BackgroundColor"];

gridLayout.BackgroundColor = BackgroundColor;//Error
Run Code Online (Sandbox Code Playgroud)

BWA*_*BWA 6

您可以使用Xamarin.Forms.ColorTypeConverter

这种方法: ConvertFrom

来自链接的示例:

var converter = new ColorTypeConverter ();
Assert.True (converter.CanConvertFrom (typeof(string)));
Assert.AreEqual (Color.Blue, converter.ConvertFrom ("Color.Blue"));
Assert.AreEqual (Color.Blue, converter.ConvertFrom ("Blue"));
Assert.AreEqual (Color.Blue, converter.ConvertFrom ("#0000ff"));
Assert.AreEqual (Color.Default, converter.ConvertFrom ("Color.Default"));
Assert.AreEqual (Color.Accent, converter.ConvertFrom ("Accent"));
var hotpink = Color.FromHex ("#FF69B4");
Color.Accent = hotpink;
Assert.AreEqual (Color.Accent, converter.ConvertFrom ("Accent"));
Run Code Online (Sandbox Code Playgroud)

  • 这是一个仅链接的答案,在这里强烈不鼓励。 (2认同)
  • 虽然这回答了问题,但最好在此处复制一些相关示例/代码,因为链接可能会失效。 (2认同)

Adr*_*ni6 5

我想你的字符串是你想要应用的颜色的十六进制值。如果是这样,您必须将其解析为颜色。该.setBackground方法和BackgroundColor属性接受一个颜色对象。

要解析它,请使用Color包含FromHex方法的类。

Color.FromHex("#FFF");