none
Poner color al fondo del icono de la barra de tareas RRS feed

Respuestas

  • gracias por responder, ya probé cambiar el icono con diferentes colores de fondo y funciona, pero cuando se ancla el programa en la barra de tareas parece que le bloquea y ya no cambia el icono, por eso pensé que podía cambiar el color de fondo, no tenes algun ejemplo en vb.net para probar el progressvalue? probe mucho ya adaptar los ejemplos de la pagina que me recomiendas pero se me complica, lo que puedo hacer creo es poner al 100% el progressvalue cuando quiero que este verde y 0% cuando tiene que estar transparente, pero como digo no consigo un ejemplo fácil de implementar.
    • Marcado como respuesta Dani Paredez martes, 16 de julio de 2019 2:44
    lunes, 15 de julio de 2019 23:33
  • Encontré la solución a mi problema, dejo el código si a alguien le sirve.

    Primero hay que instalar en "Administrar Paquetes NuGet" Microsoft-WindowsAPICodePack-ShellExtensions

    Imports Microsoft.WindowsAPICodePack.Taskbar
    
    Public Class Form1
    
        Private windowTaskbar As TaskbarManager = TaskbarManager.Instance
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            'COLOR VERDE
            windowTaskbar.SetProgressState(TaskbarProgressBarState.Normal)
            windowTaskbar.SetProgressValue(10, 10)
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            'COLOR ROJO
            windowTaskbar.SetProgressState(TaskbarProgressBarState.[Error])
            windowTaskbar.SetProgressValue(10, 10)
        End Sub
    
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            'COLOR AMARILLO
            windowTaskbar.SetProgressState(TaskbarProgressBarState.Paused)
            windowTaskbar.SetProgressValue(10, 10)
        End Sub
    
        Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
            'TRANSPARENTE BASE AZUL
            windowTaskbar.SetProgressState(TaskbarProgressBarState.NoProgress)
        End Sub
    
        Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
            'TRANSPARENTE BASE VERDE
            windowTaskbar.SetProgressState(TaskbarProgressBarState.Indeterminate)
        End Sub
    
    End Class

    • Marcado como respuesta Dani Paredez martes, 16 de julio de 2019 2:44
    martes, 16 de julio de 2019 2:44

Todas las respuestas

  • Simplemente, en la propiedad Me.Icon puedes asignar un icono distinto. Basta con que el icono lo hayas dibujado previamente con el fondo de color verde, en lugar de usar un icono con fondo transparente.

    Otra cosa es que quieras que el fondo sea "parcialmente verde" para indicar el progreso de una operación, y que vaya cambiando sobre la marcha. Hay unas APIs de Windows para eso. Si no quieres declararlas con P/Invoke, están encapsuladas en la clase System.Windows.Shell.TaskBarItemInfo. La propiedad ProgressValue indica la cantidad del icono que queda de color verde. La documentación oficial contiene ejemplos:

    https://docs.microsoft.com/en-us/dotnet/api/system.windows.shell.taskbariteminfo.progressvalue?view=netframework-4.8

    lunes, 15 de julio de 2019 20:39
  • gracias por responder, ya probé cambiar el icono con diferentes colores de fondo y funciona, pero cuando se ancla el programa en la barra de tareas parece que le bloquea y ya no cambia el icono, por eso pensé que podía cambiar el color de fondo, no tenes algun ejemplo en vb.net para probar el progressvalue? probe mucho ya adaptar los ejemplos de la pagina que me recomiendas pero se me complica, lo que puedo hacer creo es poner al 100% el progressvalue cuando quiero que este verde y 0% cuando tiene que estar transparente, pero como digo no consigo un ejemplo fácil de implementar.
    • Marcado como respuesta Dani Paredez martes, 16 de julio de 2019 2:44
    lunes, 15 de julio de 2019 23:33
  • Encontré la solución a mi problema, dejo el código si a alguien le sirve.

    Primero hay que instalar en "Administrar Paquetes NuGet" Microsoft-WindowsAPICodePack-ShellExtensions

    Imports Microsoft.WindowsAPICodePack.Taskbar
    
    Public Class Form1
    
        Private windowTaskbar As TaskbarManager = TaskbarManager.Instance
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            'COLOR VERDE
            windowTaskbar.SetProgressState(TaskbarProgressBarState.Normal)
            windowTaskbar.SetProgressValue(10, 10)
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            'COLOR ROJO
            windowTaskbar.SetProgressState(TaskbarProgressBarState.[Error])
            windowTaskbar.SetProgressValue(10, 10)
        End Sub
    
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
            'COLOR AMARILLO
            windowTaskbar.SetProgressState(TaskbarProgressBarState.Paused)
            windowTaskbar.SetProgressValue(10, 10)
        End Sub
    
        Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
            'TRANSPARENTE BASE AZUL
            windowTaskbar.SetProgressState(TaskbarProgressBarState.NoProgress)
        End Sub
    
        Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
            'TRANSPARENTE BASE VERDE
            windowTaskbar.SetProgressState(TaskbarProgressBarState.Indeterminate)
        End Sub
    
    End Class

    • Marcado como respuesta Dani Paredez martes, 16 de julio de 2019 2:44
    martes, 16 de julio de 2019 2:44