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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Ch0rY
05/07/2005 - 12:24 | Informe spam
prueba con System.Drawing.SystemColors

"José Mª Toro Bermejo" wrote in
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



Respuesta Responder a este mensaje
#3 José Manuel Agüero
05/07/2005 - 22:14 | Informe spam
Hola, José Mª:

Quizá buscas algo como esto:
'\\\
imports system.reflection
dim p() as propertyinfo, c as new arraylist
p=gettype(color).getproperties(BindingFlags.Static or BindingFlags.Public)
for each pi as propertyinfo in p
if pi.declaringtype is gettype(color) then
c.add pi.getvalue(nothing, nothing)
end if
next
'Ahora el arraylist c tiene todos los colores.
msgbox(directcast(c(8), color).toargb)
'///

Saludos.


"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
Respuesta Responder a este mensaje
#4 José Mª Toro Bermejo
06/07/2005 - 20:38 | Informe spam
Gracias por la ayuda
"José Manuel Agüero" <jmaguero_vodafone.es> escribió en el mensaje
news:
Hola, José Mª:

Quizá buscas algo como esto:
'\\\
imports system.reflection
dim p() as propertyinfo, c as new arraylist
p=gettype(color).getproperties(BindingFlags.Static or BindingFlags.Public)
for each pi as propertyinfo in p
if pi.declaringtype is gettype(color) then
c.add pi.getvalue(nothing, nothing)
end if
next
'Ahora el arraylist c tiene todos los colores.
msgbox(directcast(c(8), color).toargb)
'///

Saludos.


"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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida