Как добавить рамку к тексту внутри TextBlock в WPF? - PullRequest
7 голосов
/ 24 февраля 2011

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

РЕДАКТИРОВАТЬ:

Согласно предложению я попробовал оба, но без особого успеха:

<Border BorderBrush="#FF0B232F" BorderThickness="2">
   <TextBlock HorizontalAlignment="Left" Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black"/>      
</Border>

и

<Label BorderBrush="#FF0B232F" BorderThickness="2,2,2,2" Content="TextBlock" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" />

Я что-то здесь не так делаю?

Ответы [ 4 ]

4 голосов
/ 24 февраля 2011

Оба ваших подхода верны, однако, если у вас есть текстовый блок / метка внутри сетки (или любого другого контейнера), объявленной как у вас, его содержимое будет растягиваться.Попробуйте установить для параметра VerticalAlignment и / или HorizontalAlignment соответствующую настройку (сверху / слева, по центру) ..

примерно так:

<Border BorderBrush="#FF0B232F" BorderThickness="2" VerticalAlignment="Top">
    <TextBlock HorizontalAlignment="Left" Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black"/>
</Border>
4 голосов
/ 24 февраля 2011

В таких случаях я использую Label или TextBlock, помещенные в Border.

2 голосов
/ 15 июля 2013

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

<Grid HorizontalAlignment="Left">
    <TextBlock Text="TextBlock" TextWrapping="Wrap" FontSize="36" FontWeight="Bold" Foreground="#FF88BCCD" OpacityMask="Black" />
    <Border BorderBrush="#FF0B232F" BorderThickness="2" />
</Grid>

Поскольку мы не указали строку и столбец сетки в объектах TextBlock, а Border накладывает границы на верхнюю часть TextBlock.

0 голосов
/ 24 февраля 2011

, если вы просто хотите иметь рамку вокруг вашего текстового блока или любого другого элемента управления:

 <Border>
      <TextBlock></TextBlock>
    </Border>

Вы устанавливаете свойства границы, такие как цвет, угол, толщина, ...

...