Рисование текста в верхней части строки в WPF - PullRequest
2 голосов
/ 22 августа 2010

Мне было интересно, можно ли это сделать в WPF:

Text on line, text on top of line

Я думаю, главная проблема здесь в том, что я не могу встроить текстовый блок в строку в XAMLчто-то, что я привык делать.Кто-нибудь знает, как я могу решить эту проблему?

РЕДАКТИРОВАТЬ: Он также должен обрабатывать диагональный текст.

Ответы [ 3 ]

4 голосов
/ 22 августа 2010

Вы можете сделать это, это на самом деле довольно легко. Вы должны иметь в виду, что вы можете вкладывать содержимое в тег * <TextBlock> ....

<TextBlock>
    <Line X1="0" Y1="0" X2="100" Y2="0" Stroke="Black" StrokeThickness="4"/>
    <TextBlock Text="Hello there!" VerticalAlignment="Center" HorizontalAlignment="Center"/>
    <Line X1="0" Y1="0" X2="100" Y2="0" Stroke="Black" StrokeThickness="4"/>
</TextBlock>
1 голос
/ 22 августа 2010

Не могли бы вы иметь сетку из трех столбцов со строкой в ​​первом и третьем столбце и текстом во втором?Конечно, вам нужно установить свойства левой и правой линий так, чтобы они растягивались по всей ширине.

0 голосов
/ 29 июля 2017

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

<Grid>
    <Grid.ColumnDefinitions>
         <ColumnDefinition Width="1*"/>
         <ColumnDefinition Width="Auto"/>
         <ColumnDefinition Width="1*"/>
    </Grid.ColumnDefinitions>
    <Separator Grid.Column="0" Margin="5"/>
    <TextBlock Text="Hello" Grid.Column="1"/>
    <Separator Grid.Column="2" Margin="5"/>
</Grid>
...