Растяжение текста в WPF TextBlock - PullRequest
4 голосов
/ 08 июня 2011

Я хочу растянуть текст в текстовом блоке WPF без изменения размера шрифта текстового блока?

Ответы [ 2 ]

5 голосов
/ 08 июня 2011

используйте макет или преобразование рендеринга для масштабирования текста в направлении X или Y в зависимости от того, что вы хотите

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

Что-то типа

<TextBlock Text="Foo">
  <TextBlock.RenderTransform>
    <ScaleTransform ScaleX="2" ScaleY="2" />
  </TextBlock.RenderTransform>
</TextBlock>
4 голосов
/ 14 июня 2011

Чтобы растянуть текст по всему элементу управления и сделать его уже, я использую ViewBox и Layout Transform:

<DockPanel>
  <Viewbox>
    <Viewbox.LayoutTransform>
      <ScaleTransform CenterX="50" ScaleX="0.5" />
    </Viewbox.LayoutTransform>
    <TextBlock Text="Some random text."  HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
  </Viewbox>
</DockPanel>
...