对于Windows应用商店,VB.NET中没有可用的FromName方法。如何将字符串转换为颜色?我想通过传递颜色的字符串值来设置对象的fillcolor。
我找到了C#
的解决方法public static Color FromName(string name)
{
var property = typeof(Colors).GetRuntimeProperty(name);
return (Color)property.GetValue(null);
}
我似乎无法将其转换为等效的VB.NET代码。
我还尝试使用上面的代码编写Windows运行时组件,但它说GetRunTimeProperty甚至没有在任何地方定义。
答案 0 :(得分:2)
Public Function FromName(ColName As String) As SolidColorBrush
Dim [property] = System.Reflection.RuntimeReflectionExtensions.GetRuntimeProperty(GetType(Windows.UI.Colors), ColName)
Return New SolidColorBrush(DirectCast([property].GetValue(Nothing), Windows.UI.Color))
End Function
完成了!
答案 1 :(得分:0)
这不起作用吗?
Public Shared Function FromName(name As String) As Color
Dim [property] = GetType(Colors).GetRuntimeProperty(name)
Return DirectCast([property].GetValue(Nothing), Color)
End Function
答案 2 :(得分:0)
GetRuntimeProperty是一个扩展方法,不是System.Type的成员。您需要导入系统。反思使用它。有关VB中扩展方法的更多信息,请参阅http://msdn.microsoft.com/en-us/library/bb384936.aspx