2015-03-02 13 views
10

Bir gölge oluşturmak için bir renk fırçasını daha koyu bir gölgeye dönüştürmeye dayanan bir düğme stili yapıyorum.XAML'deki bir TemplateBinding üzerinde bir dönüştürücü kullanmak mümkün mü?

BorderBrush="{Binding Background, Converter={StaticResource ColourBrushToDarker}}" 

Ama bir stil tanımı TemplateBinding çalışmak için dönüştürücü alınamıyor: Ben mükemmel çalıştığını bağlama kullanmak daha düzenli XAML ben bir dönüştürücü var. Bir yolu var mı? Visual Studio, bir TemplateBinding üzerinde dönüştürücüye izin vermez.

Background="{Binding Converter={StaticResource ColourBrushToDarker}, ConverterParameter={Binding Path=Background}}"/> 

Bu yapılabilir (Ve ben TemplateBinding Cilt yerine yanı sıra çok sayıda diğer yineleme ile yukarıdaki çizgiyi denedim):

hiçbir şans ile aşağıdaki denedim? Düşündüğüm diğer şey, C# 'yı dönüştürme işlemini yapan bir özelliği kodlamaktı, ancak bir stilin arkasında bir kod bulunmuyor.

Yapacağım sonuç, Arka plan özelliğinden daha koyu olan yeni bir fırça oluşturabilmektir; böylece düğmenin her zaman ana arka plan renginden biraz daha koyu bir gölgesi vardır.

cevap

21

bazı (sıkıcı) deneme yanılma sonra ben bir çözüm buldum: Hala XAML stil öğreniyorum

Background="{Binding Background, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource ColourBrushToDarker}}" 

ama ne oluyor burada ben sanki Cilt kullanmak mümkün olduğunu düşünüyorum göreli kaynağı şablon ebeveyine ayarlayarak TemplateBinding idi. Binding (TemplateBinding değil) kullandığım için, bir dönüştürücü ekleyebiliyorum ve istenen sonucu alabiliyorum.

İlgili konular