Günümüzde görsellik müşteriler tarafından oldukça ön planda bulunmaktadır.Çünkü son kullanıcı için arka planda ne olup bittiği ya da sizin hangi teknolojileri kullandığınızın bir önemi yoktur.İsterseniz en son çıkan teknolojileri kullanın, son kullanıcı için asıl önemli olan kim ne derse desin user-friendly bir arayüzdür.Bu yazımda da bizim için küçük olsa da müşteriler için önem arz eden uygulama temasının runtime da değiştirilmesinden bahsediyor olacağım.

Tema Dosyaları

WPF uygulamalarımızda stillerimizi global olarak kullanmak için genellikle Resource Dictionary’leri kullanırız. Solution explorer’da görüldüğü gibi Bubble ve Flat isimli farklı iki resource dictionary’de bulunana temalarımız var. Çalışma zamanında da combobox’dan seçilen temayı kontrollerimize uygulayoruz. Bunu nasıl mı yapıyoruz, tek yapmamız gereken combobox’ımızın selection changed olayında uygulamamızın o anki resource’unu combobox’dan seçilen resource dictionary ile değiştirmek.

private void comboBox1_SelectionChanged(object sender,SelectionChangedEventArgs e)  
{
    ResourceDictionary resource = new ResourceDictionary();
    string selection = ((ComboBoxItem)comboBox1.SelectedItem).Content.ToString();
    resource.Source = new Uri(@"Theme/" +selection+".Theme.xaml",
    UriKind.Relative);
    Application.Current.Resources.MergedDictionaries.Clear();
    Application.Current.Resources.MergedDictionaries.Add(resource);
}

Temalar

Kolay gelsin.

About the Author