c# .net winforms background titlebar

c# - Cambiar el color de la barra de título en WinForm



.net winforms (4)

Esto es fácil de hacer:

  1. Haga clic derecho en el escritorio y seleccione "Personalizar".

  2. Haga clic en el mosaico "Color de la ventana" en la parte inferior de la pantalla.

  3. Elige tu nuevo color.

    Si su computadora está configurada para usar el tema Aero, puede elegir uno de los colores estándar o mezclar uno propio.

    Si está utilizando el tema clásico, verá un cuadro de diálogo "Color y apariencia de la ventana" que puede usar para configurar los colores. Haga clic en la barra de título del escritorio de muestra, la llamada "Ventana activa", y luego use los cuadros desplegables "Color 1" y "Color 2" para elegir un nuevo color.

Solo puedo asumir que esto es lo que quisiste decir, porque no hay absolutamente ninguna excusa para cambiar solo el color de la barra de título de tu aplicación. Hay una razón por la cual esta es una configuración de todo el sistema.

Obedezca siempre las preferencias del usuario Si querían que tu barra de título fuera de un color diferente, elegirían un color diferente.

¿Es posible cambiar el color de la barra de título de un WinForm en C #?

__________________________ [Form1_______________-|[]|X] <- I want to change the color of this | | | | | | |__________________________|


Lo que puede hacer es establecer la propiedad FormBorderStyle en None y hacer lo que quiera con el formulario utilizando GDI.


Resolví este problema. Este es el código:

[DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC); [DllImport("User32.dll")] private static extern IntPtr GetWindowDC(IntPtr hWnd); protected override void WndProc(ref Message m) { base.WndProc(ref m); const int WM_NCPAINT = 0x85; if (m.Msg == WM_NCPAINT) { IntPtr hdc = GetWindowDC(m.HWnd); if ((int)hdc != 0) { Graphics g = Graphics.FromHdc(hdc); g.FillRectangle(Brushes.Green, new Rectangle(0, 0, 4800, 23)); g.Flush(); ReleaseDC(m.HWnd, hdc); } } }