2012-11-07 13 views
9

Domanda semplice. Il seguente codice WPF C# può ridurre un po 'di peso? Voglio dire, WTF, uh ... intendo WPF, vieni. Hai visto tutti i CSS? Voglio solo sottolineare il testo quando si passa con il mouse come un collegamento. Devo davvero aggiungere 9 linee per quello?WPF TextBlock Style Sottolineato al passaggio del mouse

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

Grazie in anticipo!

+1

Upvote per negare gli stili WPF. – Skrymsli

risposta

13

Aggiungere lo stile come risorsa; allora almeno puoi riutilizzarlo. Penso che sia il meglio che puoi fare.

<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

Ciò mantiene il pulitore del codice davvero. Poiché potrebbe non esserci un'alternativa, accetterò questa come risposta. –

+4

TextDecoration deve essere TextDecorations, altrimenti il ​​compilatore si lamenta – lvmeijer

+0

Mi chiedo come questo possa essere fatto con una proprietà associata o un comportamento. La proprietà allegata è la più concisa e più facile da combinare, credo. –

Problemi correlati