Rehber C# dili ile yazılan programda başlık çubuğu (titlebar) rengini değiştirme

Merhaba 😇

Bugün sizlerle birlikte C# dili ile, yani Form veya WPF olarak yazılmış bir yazılımın titlebar, yani başlık çubuğu rengini değiştirmeyi göstereceğim.

Bildiğiniz üzere bir program yazınca başlık çubuğu rengi bu şekilde gözüküyor.

1679051407985.png


Özellikle koyu tema bir yazılım geliştirdiğiniz zaman sinir bozucu olabiliyor.

Normalde varsayılan olarak WinForm bunu desteklemez. Hatta çoğu zaman WPF'de tam olarak desteklemez.

O yüzden DWM (Desktop Window Manager) API kullanacağız. Bu API, Windows'un kendi içinde yer alan bir API'dir.

Şimdi başlık çubuğu rengini değiştirelim.

Not:
Bu yapacağımız renk değiştirme işlemleri sadece Windows 10 ve 11'de çalışır.

Gerekli kütüphaneler;
C#:
using System;
using System.Windows.Forms; // WPF ise gerekli değil.
using System.Runtime.InteropServices;

Öncelike Form'un global alanına ilgili kodu yazmanız lazım.

1679052642903.png

C#:
// ======================================================================================================
// TITLE BAR SETTINGS DWM API - TECHNOPAT SOSYAL
[DllImport("DwmApi")]
private static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, int[] attrValue, int attrSize);

Ardından Form veya WPF programının Load (Form) veya Start (WPF) işlemine altta verdiğim kodu yazmanız gerekiyor.

1679052658168.png

C#:
try{
    if (DwmSetWindowAttribute(Handle, 19, new[]{ 1 }, 4) != 0){
        DwmSetWindowAttribute(Handle, 20, new[]{ 1 }, 4);
    }
}catch(Exception){ }

Bu kod titlebar, yani başlık çubuğu rengi beyaz ise rengini siyaha çevirir. Ardından metin ve pencere boyutlandırma renklerini beyaza çeviriyor.

1679051779349.png


Gördüğünüz üzere, artık başlık çubuğu rengi siyah oldu.

Umarım işinize yaramıştır.
Yazılım rehberlerimin devamı gelecek.

İyi çalışmalar, kolay gelsin
😎
 
Son düzenleme:
Elinize sağlık. C#'da belki en çok eksik olduğum alan bu Windows API'lerini kullanmak. Bunun gibi kullanışlı API'ler için hangi dökümasyonları kullanıyor veya araştırma yapıyorsunuz? Teşekkürler.
 

Yeni konular

Geri
Yukarı