我正在寻找一种将Xamarin.Forms.Color转换为平台特定颜色的方法。例如Android.Graphics.Color for Android。
我看了一下Xamarin.Forms.Color的属性,比如R,G& B.这些值只包含0或1,因此看起来似乎毫无价值。有人经历过并解决过这个问题吗?
答案 0 :(得分:51)
我猜您尝试在自定义渲染器中执行此操作。
在iOS 中,您可以:
UIColor uicolor = yourXFColor.ToUIColor ();
在Android中:
Android.Graphics.Color adColor = yourXFColor.ToAndroidColor ();
不幸的是,等效的扩展方法不是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));
然后最终:
Brush brush = new SolidColorBrush (wpColor);
答案 1 :(得分:12)
目前,您可以使用Xamarin.Forms.Platform.Android中的“ToAndroid()”扩展方法执行此操作。
using Xamarin.Forms.Platform.Android;
Android.Graphics.Color droidColor = formsColor.ToAndroid();
答案 2 :(得分:3)
以下是Windows的一些方法:
拿走,例如this扩展程序:
using System;
namespace Xamarin.Forms.Platform.WinRT
{
public static class ColorExtensions
{
public static Windows.UI.Color ToWindows(this Xamarin.Forms.Color color)
{
return Windows.UI.Color.FromArgb(Convert.ToByte(color.A * 255), Convert.ToByte(color.R * 255), Convert.ToByte(color.G * 255), Convert.ToByte(color.B * 255));
}
}
}
或直接使用Brush
var converter = new ColorConverter();
Control.CurrentBrush =
(SolidColorBrush)
converter.Convert(Element.CurrentLineColor, null, null, null);
:
if (myAssessments[orderId].report &&
myAssessments[orderId].report[categoryProductCode] &&
myAssessments[orderId].report[categoryProductCode].categories &&
myAssessments[orderId].report[categoryProductCode].categories[comment.categoryId]) {
// Do something related to
// myAssessments[orderId].report[categoryProductCode].categories[comment.categoryId]
}
答案 3 :(得分:2)
在此处取消之前的答案,但Xamarin现在已将ToAndroid()方法放在ColorExtensions帮助程序类中。
using Xamarin.Forms.Platform.Android
....
Android.Graphics.Color color = ColorExtensions.ToAndroid(formsColor);
答案 4 :(得分:0)
Xamarin have added ToWindowsColor()
(我认为在3.6版本中)。 ->
然后只需要做。.YourColorObject.ToWindowsColor()
然后您有了一个Windows.UI.Color
答案 5 :(得分:0)
使用 from operator import sub
import numpy as np
import math
import pandas as pd
from scipy import special as sp
noerror = pd.read_csv(r"C:\Users\nickc\Desktop\School\20 - 21\4810\profile_data_without_errors_activity_2.csv")
werror = pd.read_csv(r"C:\Users\nickc\Desktop\School\20 - 21\4810\profile_data_with_errors_activity_2.csv")
bladespace = noerror["x"]
voltage = noerror["y"]
w = np.arange(.0105, .011, .001)
b = np.arange(.00005, .0004, .0005)
chi2 = sum(
[map(
sub, voltage, 1.4375 * math.erf((np.sqrt(2) / w) *
[i - b for i in bladespace]) + 1.45195) ** 2])
的解决方案:
Xamarin.Essentials
链接:https://docs.microsoft.com/en-us/xamarin/essentials/color-converters