2010-08-25 22 views
17

WPF uygulamam için genel stilleri ayarlamanın bir yolu var mı?WPF - Genel Stil?

Yapmayı umduğum şey, Resim çocuğa sahip olan tüm Düğmelerim için bir stil uygulamak.

cevap

23

Pekala, bir çeşit - yapabileceğiniz her şeyi yakalamak için bir yaklaşım - App.xaml'inize aşağıdaki öğeyi ekleyin - tüm düğmeleriniz değişecektir (stil uygularsanız, el ile). - Eğer resim olmadan yalnızca düğmeleri vurmak istiyorsanız

<Style TargetType="{x:Type Button}"> 
    <Setter Property="Background" Value="LightPink"/> <!-- You should notice that one... --> 
</Style> 

Ancak, böyle bir stil uygulamak ardından yapmanız Düğme her şey devralan ve gerek:

public class CustomImageButton:Button{} 
<Style TargetType="{x:Type local:CustomImageButton}"> 
    <Setter Property="Background" Value="LimeGreen"/> 
</Style> 
<local:CustomImageButton Content="ClickMe"/> 

Öyle çok iri taneli global stil - ve çalışmasını sağlamak için konvansiyona uymanız gerekir.

Bir alternatif Temaları kullanmaktır - bunun hakkında daha fazla bilgi için here.

+2

Maalesef Temalar bağlantısı kesildi. [Burada] (http://blogs.msdn.com/b/wpfsdk/archive/2007/07/31/using-themes-with-custom-controls.aspx), temaları kullanma konusunda MSDN'den bir makaleye bağlantıdır. benzer olabilir. –

5

Sen tarzı App ise (

<Style TargetType="Button"> 

o tarz kapsamında TÜM düğmelere uygulanacaktır örneğin tip

tarafından uygulanan WPF örtük stilleri yapabilirsiniz. XAML, tüm düğmeler için geçerli olacaktır, eğer zincirde daha düşükse, altındaki tüm düğmeler için geçerli olacaktır)

Yalnızca belirli türdeki düğmelere uygulamak isterseniz (sözdizim düğmeleri), düğmesini (ImageButton olarak adlandırın) ve ardından tyle bu tür hedeflenmiş.

+0

Tamam ... bu tür işler. Düğmelerimden biri bu değişime saygı duyuyor gibi görünüyor, ancak diğerleri yok. Tüm stilleri bir 'x: Key' verdikten sonra çalışırlar ve sonra her bir düğmeden 'Style = "{StaticResource DisabledButton}" 'kullanarak açıkça çağırırlar. Her bir düğmeye açık bir referans eklemekten kaçınmam mümkün mü? –

+0

Bu stilin tanımlandığı kaynak sözlüğünün, stile başvurmak için gereken tüm düğmelerin kapsam dahilinde olduğundan emin olun. Bu stili App.xaml uygulamasına yerleştirmek, uygulamadaki tüm düğmelere görünecektir. Daha düşük hareket etmek, görünürlüğünü kısıtlar. –

2

Stili, App.xaml dosyanızın içindeki ResourceDictionary etiketine yerleştirin ve uygulamanın tamamına uygulanacaktır.