WPF: как писать текст в другом направлении?

Вопрос:Мне нужно написать текст в ориентации, указанной для изображения ниже. Дело в том, что я видел несколько примеров здесь, используя текстовый блок и поворачивая угол управления с помощью "RenderTransform", но это не то, что мне действительно нужно. Я попытался сделать это с помощью изображения, но он не подходит очень хорошо... поэтому я действительно не знаю,

Вопрос:

Мне нужно написать текст в ориентации, указанной для изображения ниже. Дело в том, что я видел несколько примеров здесь, используя текстовый блок и поворачивая угол управления с помощью “RenderTransform”, но это не то, что мне действительно нужно. Я попытался сделать это с помощью изображения, но он не подходит очень хорошо… поэтому я действительно не знаю, как его решить. Если вы посмотрите на изображение рядом с ним, вы увидите, что текст написан снизу вверх, а строка под текстом находится справа от экрана.
Это экран, который мне нужно разработать:

Я попытался повернуть текстовый блок, но единственный способ, которым он работает для меня, – это обернуть текст, но это всего лишь “самое близкое” решение, которое я нашел. Кроме того, как вы можете видеть, мне нужно установить границу для текстового блока.

В любом случае, я надеюсь, вы можете мне помочь, потому что любой пример вокруг меня подходит.

Лучший ответ:

Чтобы повернуть текст под углом 90 градусов, я считаю, что вам нужно использовать LayoutTransform вместо RenderTransform:

<TextBlock Text=»FootRoller» HorizontalAlignment=»Center» VerticalAlignment=»Center»> <TextBlock.LayoutTransform> <RotateTransform Angle=»-90″/> </TextBlock.LayoutTransform> </TextBlock>

Разница заключается в том, когда будет применено преобразование. Используя LayoutTransform, текст будет повернут до прохода макета, и это будет важно в вашем случае. Я полагаю, что использование RenderTransform приведет к вращению вашего TextBlock, но так как это происходит после прохода макета, оно не будет показывать все это… это потому, что оно было измерено для размера, прежде чем оно было повернуто.

Подробную информацию можно найти на странице Transforms Overview на MSDN. На связанной странице:

LayoutTransform. Преобразование, которое применяется перед прохождением макета. После применения преобразования система компоновки обрабатывает преобразованный размер и положение элемента.

RenderTransform. Преобразование, которое изменяет внешний вид элемента, но применяется после завершения макета. Используя свойство RenderTransform вместо свойства LayoutTransform, вы можете получить преимущества производительности.

Ответ №1

Все в порядке. RenderTransform должно быть все, что вам нужно. Как;

<TextBlock Text=»FootRoller» RenderTransformOrigin=»0.5,0.5″ HorizontalAlignment=»Center» VerticalAlignment=»Center»> <TextBlock.RenderTransform> <CompositeTransform Rotation=»-90″/> </TextBlock.RenderTransform> </TextBlock>

P.S. – Вы можете буквально изменить RenderTransform на LayoutTransform, который Шеридан дал объяснение в своем ответе.

Ответ №2

Если RenderTransform не работает, взгляните на LayoutTransform. Вы не сказали нам, почему RenderTransform не работает, но обычно это безопасная ставка, что LayoutTransform решит любую проблему, которую он вам дал.

Оцените статью
Добавить комментарий