2012-11-07 19 views
9

Basit soru üzerine WPF TextBlock Stil Altı çizili. Aşağıdaki WPF C# kodu biraz kilo alabilir mi? Yani, WTF, uh ... WPF demek istedim, bir tane. Her CSS'yi gördünüz mü? Sadece bir link gibi fareyle dolaştığımda sadece Metnin altını çizmek istiyorum. Bunun için 9 satır eklemem gerekiyor mu?Fare Vurgusu

<TextBlock x:Name="Cassette_tblPrintLabel" Text="Print Label" Canvas.Left="154" Canvas.Top="215" Foreground="#FF3355FF" Cursor="Hand" MouseDown="Cassette_lblPrintLabel_MouseDown"> 
    <TextBlock.Style> 
     <Style TargetType="TextBlock"> 
      <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="TextBlock.TextDecoration" Value="Underline" /> 
      </Trigger> 
      </Style.Triggers> 
     </Style> 
    </TextBlock.Style> 
</TextBlock> 

Şimdiden teşekkürler!

+1

WPF stillerini engellemek için tekrar başvurun. – Skrymsli

cevap

13

Stili kaynak olarak ekleyin; o zaman en azından yeniden kullanabilirsiniz. Bence yapabileceğin en iyisi bu.

<Application.Resources> 
    <Style TargetType="TextBlock" x:Key="HoverUnderlineStyle"> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="TextBlock.TextDecorations" Value="Underline" /> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</Application.Resources> 

<TextBlock Style="{StaticResource HoverUnderlineStyle}" /> 
+0

Bu, kodu gerçekten temiz tutar. Alternatif olamayacağı için bunu cevap olarak kabul edeceğim. –

+4

TextDecoration TextDecorations olmalıdır, aksi halde derleyici – lvmeijer

+0

'dan şikayetçi. Bunun nasıl bir özellik veya davranışla yapılacağını merak ediyorum. Bağlı özellik en özlü ve bence birleştirmek en kolay. –