Растягивание текста в WPF TextBlock

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


person user679530    schedule 08.06.2011    source источник
comment
Если вам нужен тип поведения «растянуть по размеру», обратите внимание на ViewBox.   -  person Dan Bryant    schedule 08.06.2011


Ответы (2)


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

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

Что-то типа

<TextBlock Text="Foo">
  <TextBlock.RenderTransform>
    <ScaleTransform ScaleX="2" ScaleY="2" />
  </TextBlock.RenderTransform>
</TextBlock>
person Brad Cunningham    schedule 08.06.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>
person Jiri Stybnar    schedule 14.06.2011