将Xamarin.Forms.Color转换为平台特定的颜色

bka*_*dol 21 android colors ios xamarin xamarin.forms

我正在寻找一种方法将Xamarin.Forms.Color转换为平台特定的颜色.例如适用于Android的Android.Graphics.Color.

我看了一下像R,G和B这样的Xamarin.Forms.Color的属性.这些值只包含0或1,所以看起来似乎毫无价值.有人经历过并解决过这个问题吗?

Ste*_*oix 55

我猜您尝试在自定义渲染器中执行此操作.

在iOS中,您可以:

UIColor uicolor = yourXFColor.ToUIColor ();
Run Code Online (Sandbox Code Playgroud)

在Android中:

Android.Graphics.Color adColor = yourXFColor.ToAndroidColor ();
Run Code Online (Sandbox Code Playgroud)

遗憾的是,WP的等效扩展方法不公开,但您可以这样做:

System.Windows.Media.Color wpColor = System.Windows.Media.Color.FromArgb (
            (byte)(yourXFColor.A * 255),
            (byte)(yourXFColor.R * 255),
            (byte)(yourXFColor.G * 255),
            (byte)(yourXFColor.B * 255));
Run Code Online (Sandbox Code Playgroud)

然后最终:

Brush brush = new SolidColorBrush (wpColor);
Run Code Online (Sandbox Code Playgroud)

  • 看来,现在的扩展方法Xamarin.Forms.Color转换到Android的颜色是:`XFColor.ToAndroid();` (6认同)

San*_*erE 12

目前,您可以使用Xamarin.Forms.Platform.Android中的"ToAndroid()"扩展方法执行此操作.

using Xamarin.Forms.Platform.Android;
Android.Graphics.Color droidColor = formsColor.ToAndroid();
Run Code Online (Sandbox Code Playgroud)