Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Usando iconos SVG en los formularios en modo claro y oscuro
#1

Hola amigos.
[Imagen: OxSSRYn.png][Imagen: rWhXdug.png]
Aquí les comparto una manera (no se si es la mejor) de usar iconos SVG en los formularios claros y oscuros.
Por supuesto no hay que hacer dos iconos distintos para modo claro y oscuro sino alterar el color intrínseco del SVG y luego cargarlo al control.
En este caso le voy a reemplazar el color "#0066b3" por uno antagónico al tema de escritorio.
GAMBAS
  1. ' Gambas class file
  2.  
  3. Private aIcons As String[]
  4.  
  5. Public Sub Form_Open()
  6.  
  7.   Dim sFile As String
  8.   Dim tob As ToolButton
  9.   Dim z As Integer = 40
  10.  
  11.   aIcons = RDir("./var/svg", "*.svg")
  12.  
  13.   pIcons.Children.Clear
  14.   For Each sFile In aIcons
  15.     tob = New ToolButton(pIcons) As "Tincho"
  16.     tob.Tag = File.BaseName(sFile)
  17.     tob.h = z
  18.     tob.w = z
  19.     tob.Picture = Image.FromString(Contrary("./var/svg" &/ sFile, "#0066b3", -1)).Stretch(z, z).Picture
  20.   Next
  21.  
  22.  
  23. '' Replace a color in an svg file with one that contrasts with the background of the desktop theme
  24.  
  25. Public Function Contrary(sFile As String, sColor As String, iBackground As Integer) As String
  26.  
  27.   Dim sVector As String
  28.   Dim iContrast As Integer
  29.   Dim sReplace As String
  30.  
  31.   If iBackground = -1 Then
  32.     If Application.DarkTheme Then
  33.       sVector = Replace(File.Load(sFile), sColor, "#eeeeee")
  34.     Else
  35.       sVector = Replace(File.Load(sFile), sColor, "#000000")
  36.     Endif
  37.   Else
  38.     iContrast = Color.Invert(iBackground)
  39.     sReplace = "#" & CStr(Hex(iContrast, 6))
  40.     sVector = Replace(File.Load(sFile), sColor, sReplace)
  41.   Return sVector




Archivos adjuntos
.gz sample-svg-icons-0.0.1.tar.gz Tamaño: 13.5 KB  Descargas: 4

1 Saludo.
[-] Los siguientes 2 usuarios dicen gracias a tincho por este post:
  • Shordi, tercoide
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)