2013-04-08 26 views
5

Sto provando visivamente a align la parte superiore del contenuto di 2 (o più) blocchi di Text. Il contenuto e lo Font (Size, Family, Weight) di ciascun blocco possono essere modificati dall'utente.Allinea verticalmente le parti superiori dei blocchi di testo in WPF

Ho provato a giocare con le funzioni GetCellAscent, GetCellDescent e GetLineSpacing ma i risultati dipende solo il tipo di carattere e non il contenuto vero e proprio. E comunque non riesco a trovare come viene distribuita la differenza tra LineSpacing e Ascent+ Descent nella parte superiore e inferiore del blocco.

Per esempio io voglio produrre questo tipo di uscita:

enter image description here

Qualsiasi aiuto?

+0

Non puoi semplicemente aggiungere un 'VerticalAlignment = "top"' all'elemento blocco di testo? – Deruijter

+0

dovresti mostrarci il tuo codice (xaml in questo caso): in questo modo è più semplice per noi aiutarti –

+0

@Daniele Armanasco: Questo è puro codice, non XAML da mostrare. – user2223898

risposta

1

Try This .....

<Grid Width="171" Height="100" Background="Black" Margin="257,78,75,133"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="Auto" /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 

     </Grid.RowDefinitions> 

     <TextBlock Name="aaa" Text="12" FontSize="40" HorizontalAlignment="Center" VerticalAlignment="Stretch" Grid.Row="1" FontWeight="Bold" Foreground="White" /> 
     <TextBlock Text="$" HorizontalAlignment="Left" FontSize="20" Grid.Column="1" FontFamily="Euphemia" FontWeight="Bold" Foreground="White" Margin="8,0,72,0" /> 
     <TextBlock Text="00 le Kg" FontSize="15" Grid.Column="1" Grid.Row="3" HorizontalAlignment="Left" Grid.IsSharedSizeScope="True" FontFamily="Euphemia" FontWeight="Bold" Foreground="White"/> 

    </Grid> 
+0

Probabilmente non ero abbastanza chiaro, ma il mio problema è allineare la parte superiore del blocco "12" con la parte superiore del blocco "$" (o "€" o qualsiasi altra cosa). E questo per qualsiasi famiglia di font/dimensione/peso ... – user2223898

+0

vedi la versione modificata e cambia il Fontsize di textblock aaa per vedere le modifiche ... è ri8 ora ???? – YOusaFZai

+0

(Mi dispiace rispondere in ritardo, non ho ricevuto notifica della modifica) So che è possibile allineare manualmente i due contenuti di testo. Ma voglio farlo automaticamente. – user2223898