0

VB.NET 中没有适用于 Windows 应用商店应用的 FromName 方法。如何将字符串转换为颜色?我想通过传递颜色的字符串值来设置对象的填充颜色。

我为 C# 找到了这个解决方法

public static Color FromName(string name)
{
     var property = typeof(Colors).GetRuntimeProperty(name);
     return (Color)property.GetValue(null);
}

我似乎无法将其翻译成等效的 VB.NET 代码。

我还尝试使用上面的代码编写 Windows 运行时组件,但它说 GetRunTimeProperty 甚至没有在任何地方定义。

4

3 回答 3

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

并做了!

于 2013-07-17T03:49:43.590 回答
0

GetRuntimeProperty 是一种扩展方法,而不是 System.Type 的成员。您需要导入系统。反射使用它。有关VB 中的扩展方法的更多信息,请参阅http://msdn.microsoft.com/en-us/library/bb384936.aspx

于 2013-07-17T18:19:41.573 回答
0

这不起作用吗?

Public Shared Function FromName(name As String) As Color
    Dim [property] = GetType(Colors).GetRuntimeProperty(name)
    Return DirectCast([property].GetValue(Nothing), Color)
End Function
于 2013-07-17T03:17:08.757 回答