Feedback

C# - Windows Phone: Color/Brush aus string

Veröffentlicht von am 2/22/2014
(0 Bewertungen)
Manchmal möchte man vielleicht einen Farbnamen oder einen Farbcode in ein Color oder Brush-Objekt konvertieren, so wie es im XAML geht.
Unter WPF könnte man einen Typkonverter nutzen, dieser ist aber unter Windows Phone nicht verfügbar. Das Einfachste ist darum den XamlReader für sich arbeiten zu lassen.

Benötigte Namespaces
System.Windows.Markup
System.Windows.Media

Getestete Plattformen
Windows Phone 8 im VS 2012 Simulator

Folgendes Snippet zeigt den Weg über einen Typconverter in WPF:
http://dotnet-snippets.de/snippet/string-to-solidcolorbrush/3861
/// <summary>
/// Konvertiert eine Zeichenfolge in ein <see cref="System.Windows.Media.Color"/>-Objekt.
/// </summary>
/// <param name="colorName">Der Name oder Code der Farbe.</param>
/// <returns>Ein <see cref="System.Windows.Media.Color"/>-PObjekt mit dem Farbwert von <paramref name="colorName"/>.</returns>
public Color StringToColor(string colorName)
{
    string xaml = "<Color xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' >" + colorName + "</Color>";
    return (Color)XamlReader.Load(xaml);
}
/// <summary>
/// Konvertiert eine Zeichenfolge in ein <see cref="System.Windows.Media.SolidColorBrush"/>-Objekt.
/// </summary>
/// <param name="colorName">Der Name oder Code der Farbe.</param>
/// <returns>Ein <see cref="System.Windows.Media.SolidColorBrush"/>-PObjekt mit dem Farbwert von <paramref name="colorName"/>.</returns>
public SolidColorBrush StringToBrush(string colorName)
{
    string xaml = "<SolidColorBrush xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' >" + colorName + "</SolidColorBrush>";
    return (SolidColorBrush)XamlReader.Load(xaml);
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!