2012-11-07 8 views
9

Proste pytanie. Czy następujący kod CF WPF może obniżyć wagę? Mam na myśli, WTF, uh ... mam na myśli WPF, przyjdź. Czy każdy widział CSS? Chcę tylko podkreślić tekst, gdy umieściłem kursor myszy tak jak link. Czy naprawdę muszę dodać 9 linii?Podkreślenie stylu tekstowego wtyczki WPF na myszy Hover

<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> 

Z góry dziękuję!

+1

Awans na negowanie stylów WPF. – Skrymsli

Odpowiedz

13

Dodaj styl jako zasób; wtedy przynajmniej możesz go ponownie użyć. Myślę, że to najlepsze, co możesz zrobić.

<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

Utrzymuje to czystość kodu. Ponieważ nie może istnieć alternatywa, przyjmuję to jako odpowiedź. –

+4

TextDecoration musi być TextDecorations, w przeciwnym razie kompilator narzeka – lvmeijer

+0

Zastanawiam się, jak można to zrobić z załączoną właściwością lub zachowaniem. Załączona nieruchomość jest najbardziej zwięzła i najłatwiejsza do połączenia, jak sądzę. –