Colores

03/07/2005 - 00:09 por José Mª Toro Bermejo | Informe spam
Hola a todos. ¿Alguien sabe como obtener el nombre de los colores del
sistema mediante código?
yo estoy utilizando

color.FromArgb(x, y, z)

if color.ToKnowColor = color.IsKnownColor

pero siemrpre devuelve 0.

Gracias de antemano
 

Leer las respuestas

#1 Pedro Luna Montalvo, [MVP VB.NET]
05/07/2005 - 05:47 | Informe spam
Saludos,

De la documentación de Color.ToKnownColor():

"Si se aplica el método ToKnownColor a una estructura Color que se crea con
el método FromArgb, el método ToKnownColor devuelve cero, incluso si el
valor ARGB coincide con el valor ARGB de un color predefinido"
Asi que por habra que utilizar algun metodo menos elegante para resolver
esto:


Imports System
Imports System.Drawing
Module Modulo

Sub Main
'Intentaremos reperar los nombres de estos colores
Console.WriteLine(ObtenerNombreColor(255, 0, 0))
Console.WriteLine(ObtenerNombreColor(0, 255, 0))
Console.WriteLine(ObtenerNombreColor(255, 255, 0))
End Sub


Function ObtenerNombreColor(r As Integer, g As Integer, b As Integer) As
String
'Generamos el color a partir de sus valores RGB
Dim colorBuscado As Color = Color.FromArgb(r, g, b)

'Obtenemos un arreglo de la enumeracion KnowColor
Dim colores As KnownColor() = ObtenerColoresConocidos()
Dim i As Integer

'Recorremos el arreglo en busca de algun color que sea igual al que
buscamos
For i = 0 To colores.Length - 1
Dim color As Color = Color.FromKnownColor(colores(i))
If color.ToArgb() = colorBuscado.ToArgb() Then
Return color.ToString()
End If
Next
Return ""
End Function

' Recuperamos un arreglo de colores conocidos
Function ObtenerColoresConocidos() As KnownColor()
Dim oArreglo As Array = [Enum].GetValues(GetType(KnownColor))
Return CType(oArreglo, KnownColor())
End Function
End Module


Saludos,
Pedro Luna Montalvo, [MVP VB.NET]
Gye, Ecu

"José Mª Toro Bermejo" escribió en el mensaje
news:
Hola a todos. ¿Alguien sabe como obtener el nombre de los colores del
sistema mediante código?
yo estoy utilizando

color.FromArgb(x, y, z)

if color.ToKnowColor = color.IsKnownColor

pero siemrpre devuelve 0.

Gracias de antemano



Preguntas similares