2009-05-01 14 views
5

XAML aşağıda (üzerine gelindiğinde metin değişmez) çalışmaz:TextBlock Text özelliği, boş değilse stil tetikleme yoluyla ayarlanamaz - neden?

<Window.Resources> 
    <Style TargetType="TextBlock"> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="true"> 
       <Setter Property="Text" Value="hover"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Window.Resources> 
<Grid> 
    <TextBlock Text="original"/> 
</Grid> 

Fakat, Metin özniteliği yoksa:

<Grid> 
    <TextBlock/> 
</Grid> 

metin farenin üzerinde değişiklik yok. Bunun arkasındaki teoriyi bilen var mı?

cevap

6

Gerçekte olduğu gibi özelliğini ayarlayın DependencyProperty öncelik sorunu söz konusuysa,:

tetikleyici ayarlanan değerden daha önceliklidir
<TextBlock Text="original"/> 

.

Bu büyük bir bağlantıdır

http://msdn.microsoft.com/en-us/library/ms743230.aspx

+0

görüyoruz. Benim hatalarım olduğunu düşündüğüm şeyin bir _lot_unu açıklıyor ve sadece farklı yaklaşımlar uyguluyor. –

+0

Yine de stil belirleyicileri yerel değerlerden daha sevgiliyken, stil _triggers_ daha yüksek olurdu ... Hem animasyonlar hem de veri tetikleyicileri yerel değeri kolayca geçersiz kılabildiğinden, dinamik olan stil tetikleyicisi de bu kategoriye girebilir. –

İlgili konular