2010-03-18 6 views
1

Je travaille sur une application C# Silverlight qui nécessite une rotation de texte de 90 degrés CCW et qui doit être centrée dans une image de 100 pixels x 221 pixels. La partie rotation était facile à faire dans la vue de conception, mais centrer le texte a été un cauchemar. (J'utilise une police 16px qui ne peut pas être changée ou redimensionnée)Centrer le texte horizontalement et verticalement dans Silverlight

Mon texte est dynamique et peut contenir une ou deux lignes. Quand il y a deux lignes, je peux bien le centrer ... mais si c'est une ligne, je ne peux pas le centrer. La seule façon de le centrer est de redimensionner la boîte et de la déplacer vers la droite.

Existe-t-il un moyen facile de le faire?

alt text http://www.freeimagehosting.net/uploads/f0435a8c65.png

+0

Vous voulez publier une XAML? Il est difficile de diagnostiquer ce que vous devez faire sans voir ce que vous essayez de faire ... – JerKimball

+0

Merci de votre réponse. J'ai été capable de le comprendre par moi-même. Voir ci-dessous pour la réponse. –

Répondre

0

La réponse est avéré être simple:

<Grid x:Name="LayoutRoot"> 
    <Image x:Name="Background" Source="Background.png" Stretch="Fill"/> 
    <TextBlock x:Name="Title" 
     Margin="-19.75,68.25,-21.25,67.806" Text="Here is some text to fill this up" 
     Foreground="#FF00A33D" 
     FontSize="22" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto" 
     TextAlignment="Center" TextWrapping="Wrap" 
    > 
     <TextBlock.RenderTransform> 
      <TransformGroup> 
       <ScaleTransform/> 
       <SkewTransform/> 
       <RotateTransform Angle="-90"/> 
       <TranslateTransform/> 
      </TransformGroup> 
     </TextBlock.RenderTransform> 
    </TextBlock> 
</Grid> 

Puis dans le fichier cs définir l'alignement lorsque vous modifiez le texte

Title.VerticalAlignment = VerticalAlignment.Bottom; 
Questions connexes