WPF: проблемы поворота и выравнивания текста - PullRequest
2 голосов
/ 14 июля 2020

Я пытаюсь создать метку для проекта WPF, который включает разделы, имеющие разные цвета переднего плана и специальный символ, который должен быть меньше go на 180 градусов. Я почти у цели, но есть несколько проблем.

Вот полученное изображение:

enter image description here

and here is the XAML that generates it:

       
        

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Вы ищете что-то вроде BaselineAlignment ?

Это заставит ваш код выглядеть так:

<TextBlock Margin="5,0,0,0" VerticalAlignment="Center">
    <Run Foreground="Black" Text="XXX" BaselineAlignment="Center"/>
    <Run FontSize="50" Foreground="Green" Text="Δ" BaselineAlignment="Center" />
    <Run Foreground="Orange" Text="YYY" BaselineAlignment="Center" />
</TextBlock>

Обновление:

Если вы хотите повернуть треугольник, вы можете сделать это, добавив <TextBlock> внутри текстового блока. Это выглядит так:

<Run Foreground="Black" Text="XXX"  BaselineAlignment="Center"/>
    <TextBlock Magin="-12 0">
        <TextBlock.LayoutTransform>
            <RotateTransform Angle="180" />
        </TextBlock.LayoutTransform>
        <Run FontSize="50" Foreground="Green" Text="Δ" />
    </TextBlock>
    <Run Foreground="Orange" Text="YYY" BaselineAlignment="Center" />
</TextBlock>

Это беспорядочно, но работает:

И результат такой:

Without rotation

...and this, with rotation and margins

С вращением и маржей

0 голосов
/ 14 июля 2020

Вы можете использовать применить трансформацию рендеринга для небольшой корректировки вертикального положения:

<TextBlock.LayoutTransform>
    <RotateTransform Angle="180" />
</TextBlock.LayoutTransform>
<TextBlock.RenderTransform>
    <TranslateTransform Y="3" />
</TextBlock.RenderTransform>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...