WPF’te Style’ların farklı farklı kullanım yöntemleri vardır:
1.) Resource Dictionary oluşturup tasarıya eklemek:
Tasarı (proje) üzerinde sağ tıklayın, Add, Resource Dictionary, Bir isim girin (ben başına rd koymayı tercih ediyorum). Oluşturduğumuz kaynak dosyayı her User Control ya da Window’da kullanabilmemiz için App.xaml doyasına geçip aşağıdaki gibi bir tanımlama yapıyoruz:
Source özelliğine tanımladığımız rdNesneler.xaml kaynak dosyası istediğimiz her Window ve User Control’de kullanabileceğimiz Style’ları tutacak. Bu xaml’ın içinde oluşturduğumuz her Style dosyasını (Elbette x:key değeri olmak zorunda) her yerde kullanabiliriz.
2.) Window ya da UserControl içerisinde oluşturup kullanmak:
Resource Dictionary gibi bu yöntem de her yerde kullanıma açıktır. RD’den farkı yalnızca oluşturulduğu sınıf içerisinde çağırılabilmesidir. Örneğin aşağıdaki gibi bir Button Sitilimiz olsun:
< Style x:Key=”dugmeSitili” TargetType=”Button”>
< Setter Property=”Background” Value=”WhiteSmoke” />
< Setter Property=”Padding” Value=”8,4″ />
< Setter Property=”Margin” Value=”4″ />
< Setter Property=”FontFamily” Value=”Trebuchet MS”/>
< /Style>
< /Window.Resources>
< Button Style=”{StaticResource dugmeSitili}” Content=”Mehmet ” Margin=”61,182,227,52″ />
< Button Style=”{StaticResource dugmeSitili}” Content=”Mehmet ” Margin=”71,96,239,135″ />
< /Grid>
Görüldüğü gibi Sitil özelliklerimiz Application.Resource yerine Window.Resource altında tanımlandı. Bu yüzden yalnızca bu Window altında çalışacaktır. Diğer önemli bir noktaysa her iki düğme için de aynı Sitil tanımlamasının yapılmış olmasıdır. Eğer istersek bu penceredeki tüm düğmeler için tek bir kere tanımlama yaparak da Sitil belirleyelebiliriz. Aşağıdaki XAML’ı inceleyelim:
Kodlardan da anlaşılabileceği gibi Window.Resources altında bir kere tanımlanan Sitil, düğmelerde tek tek belirtilmeden uygulanmıştır. Bunun nedeni TargetType özelliğine Button değerinin atanmış olmasıdır. Aynı durum tüm diğer nesneler için de söz konusudur.
Hiç yorum yok:
Yorum Gönder