如何将 ConsoleColor
转换为 Color
类型?
我需要这个来创建这个方法的重载,它应该返回一个颜色而不是一个控制台颜色:
''' <summary>
''' Generates a random ConsoleColor color.
''' </summary>
''' <returns>ConsoleColor.</returns>
Public Shared Function [ConsoleColor]() As ConsoleColor
Dim Rand As New Random
Return [Enum].Parse(GetType(ConsoleColor),
Rand.Next(0, 15))
End Function
这是我试过的方法,但有时返回的颜色是空的,因为 ConsoleColor 名称未知:
''' <summary>
''' Generates a random QB color.
''' </summary>
''' <returns>Color.</returns>
Public Shared Function QB() As Color
Dim Rand As New Random
Return Color.FromName([Enum].Parse(GetType(ConsoleColor),
Rand.Next(0, 15)).ToString)
End Function
PS: I want to avoid the usage of old VB6 methods (QBColor function).
最佳答案
我自己今天也遇到了这个问题,不能同意目前的两个答案。
我最终检查了所有值,发现这些值非常不同,我不知道为什么人们建议“按名称”转换。
## Name Actual Drawing.Color of same name
0 Black #000000 #000000
1 DarkBlue #000080 #00008B
2 DarkGreen #008000 #006400
3 DarkCyan #008080 #008B8B
4 DarkRed #800000 #8B0000
5 DarkMagenta #800080 #8B008B
6 DarkYellow #808000 #000000
7 Gray #C0C0C0 #808080
8 DarkGray #808080 #A9A9A9
9 Blue #0000FF #0000FF
10 Green #00FF00 #008000
11 Cyan #00FFFF #00FFFF
12 Red #FF0000 #FF0000
13 Magenta #FF00FF #FF00FF
14 Yellow #FFFF00 #FFFF00
15 White #FFFFFF #FFFFFF
关于.net - 将控制台颜色转换为颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21092421/