Ricavare un colore WPF a partire dal nome
Scritto da
Massimo Bonanni il
giovedì 28 aprile 2011
•
Linguaggio:
• Livello: 100
La classe Color di System.Windows.Media mette a disposizione il
metodo FromArgb() per recuperare un colore a partire
dalle componenti Rosso, Verde e Blu e dalla componente Alfa ma non
permette di ricavare un colore a partire dalla stringa
indicante il suo nome (ad esempio "Red" per il rosso).
La seguente funzione consente di recuperare l'oggetto Color a
partire dal nome:
VB.NET
Public Function GetColorFromName(ByVal strColor As String) As Color?
Dim retColor As Color? = Nothing
Try
Dim propColor = GetType(Colors).GetProperty(strColor)
If propColor IsNot Nothing Then
Dim value = propColor.GetValue(Nothing, Nothing)
If value IsNot Nothing Then
retColor = CType(value, Color)
End If
End If
Catch ex As Exception
retColor = Nothing
End Try
Return retColor
End Function
C#
public Nullable<Color> GetColorFromName(string strColor)
{
Nullable<Color> retColor = null;
try
{
var propColor = typeof(Colors).GetProperty(strColor);
if (propColor != null)
{
var value = propColor.GetValue(null, null);
if (value != null)
{
retColor = (Color)value;
}
}
}
catch (Exception)
{
retColor = null;
}
return retColor;
}
Tags: WPF,windows presentation