Преобразование строкового типа в Windows.UI.Color в универсальном приложении Windows

Я пытаюсь создать программу для анализа XML-файлов с предварительно заданным форматом и добавить некоторые элементы управления пользовательским интерфейсом на главную страницу в универсальном приложении Windows.

В какой-то части мне нужно указать цвет фона моих TextBlocks в связанном xml-файле, поэтому я ищу способ преобразования строкового атрибута, чтения из xml и преобразования его в соответствующее значение Windows.UI.Color.

вот мой XML-файл и мой код C#, чтобы добавить контроль

xml:

<test-unit name ="FOG_LAMP"  text ="Fog Lamp"  mode ="DIG_IN" color="ORANGE"/>

C#:

public void AddNewTextBlock(String Name, String Text, String Color)
{
    TextBlock NewTextBlock = new TextBlock();
    NewTextBlock.Name = Name;
    NewTextBlock.Text = Text;
    NewTextBlock.FontSize = 24;
    myGrid.Children.Add(NewTextBlock);
}

Спасибо за помощь

2 ответа

Решение

Ты можешь использовать XamlBindingHelper преобразовать string значение для Color -

var color = (Color)XamlBindingHelper.ConvertValue(typeof(Color), "ORANGE");
var brush = new SolidColorBrush(color);
NewTextBlock.Foreground = brush;

Используйте помощник цветов UWPCommunityToolkit.

Color redColor = "Red".ToColor();
Color redColor = ColorHelper.ToColor("#ff3a4ab0");    //For Alpha code
Другие вопросы по тегам