2010-03-18 4 views
1

Я работаю над приложением C# Silverlight, которое нуждается в некотором тексте, повернутом на 90 градусов CCW, и чтобы оно находилось в центре изображения 100px x 221px. Вращение было легко сделать в дизайне, но центрирование текста было кошмаром. (Я использую шрифт 16px, который не может быть изменен или изменен)Текст центра горизонтально и вертикально в Silverlight

Мой текст динамичен и может быть одной или двумя строками. Когда он длится две строки, я могу сосредоточиться на нем ... но если это всего лишь одна строка, я не могу ее сосредоточить. Единственный способ сосредоточить его до сих пор - изменить размер окна и переместить его вправо.

Есть ли простой способ сделать это?

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

+0

Хотите опубликовать некоторые XAML? Трудно диагностировать, что вам нужно сделать, не видя, что вы сейчас пытаетесь сделать ... – JerKimball

+0

Спасибо, что поделились. Я смог разобраться в этом сам. См. Ниже ответ. –

ответ

0

Ответ оказался прост:

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

Затем в файле CS установить выравнивание при изменении текста

Title.VerticalAlignment = VerticalAlignment.Bottom; 
Смежные вопросы