Изменение цвета строки заголовка в WinForm

можно ли изменить цвет строки заголовка WinForm в C#?

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

4 ответов


Я решил эту проблему. Это код:

[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);
        }
    }
}


что вы можете сделать, это установить FormBorderStyle свойство None и делать то, что вы хотите с формой, используя GDI.


Это легко сделать:

  1. Правой Кнопкой Мыши на рабочем столе и выберите "Персонализация".

  2. нажмите на кнопку "цвет окна" в нижней части экрана.

  3. выберите новый цвет.

    Если ваш компьютер настроен на использование темы Aero, вы можете выбрать один из стандартных цветов или смешать один из своих.

    Если вы используете классическую тему, вы увидите "цвет окна и Диалоговое окно" внешний вид " можно использовать для установки цветов. Нажмите на строку заголовка образца рабочего стола, который называется "активное окно", а затем используйте раскрывающиеся окна" цвет 1 "и" цвет 2", чтобы выбрать новый цвет.

Я могу только предположить, что это то, что вы имели в виду, потому что есть абсолютно оправдания изменить только цвет заголовка приложения. Есть причина, по которой это общесистемная настройка.

всегда повиноваться предпочтения пользователей. Если бы они хотели, чтобы ваша строка заголовка была другого цвета, они бы выбрали другой цвет.