Центрировать текст по горизонтали и вертикали в Silverlight - PullRequest
1 голос
/ 18 марта 2010

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

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

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

альтернативный текст http://www.freeimagehosting.net/uploads/f0435a8c65.png

1 Ответ

0 голосов
/ 19 марта 2010

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

<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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...