Intereting Posts
Как сделать вид в андроиде с закругленными углами Наложение макета на ListItem на основе определенной переменной ListItem getAssets (); Из другого класса Android WebView – 1st LoadData () работает нормально, последующие вызовы не обновляют отображение Лучший способ реализовать Client <-> Server <-> Архитектура базы данных в приложении для Android? Полноэкранный просмотр ViewPager Правильный способ импортировать проект Google для Android в Android Studio Как запустить AccessibilityService? ViewGroup {TextView, …} .getMeasuredHeight дает неправильное значение меньше реальной высоты Могу ли я использовать CloudKit для Android или веб-приложения Android – КоординаторLayout / NestedScrollView / Скрыть панель инструментов / Проблема с WebView Можно ли взять скриншот и проверить значения пикселей с эспрессо? Является ли отказ от приложения неодобрительным? Аутентификация Gmail Imap с помощью AccountManager Кнопка Android ShowCaseView ButtonLayoutParams не будет работать

Преобразование Xamarin.Forms.Color в цвет конкретной платформы

Я ищу способ конвертировать Xamarin.Forms.Color в определенный платформой цвет. Например, Android.Graphics.Color для Android.

Я взглянул на свойства Xamarin.Forms.Color, такие как R, G и B. Значения содержат только 0 или 1, что кажется довольно бесполезным. Кто-то испытал и решил эту проблему раньше?

Solutions Collecting From Web of "Преобразование Xamarin.Forms.Color в цвет конкретной платформы"

Наверное, вы пытаетесь сделать это в настраиваемом рендерере.

В 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); 

В настоящее время вы можете сделать это с помощью метода расширения ToAndroid () в Xamarin.Forms.Platform.Android.

 using Xamarin.Forms.Platform.Android; Android.Graphics.Color droidColor = formsColor.ToAndroid(); 

Исходя из предыдущих ответов здесь, но Xamarin теперь разместил метод ToAndroid () в вспомогательном классе ColorExtensions.

 using Xamarin.Forms.Platform.Android .... Android.Graphics.Color color = ColorExtensions.ToAndroid(formsColor); 

Вот несколько подходов для Windows:

Возьмите, например, это расширение:

 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);