WPF Додавання межі до TextBlock


77

Чи можна додати межу до текстового блоку. Мені потрібно, щоб він був доданий до властивості сетера нижче коду:

<Style x:Key="notCalled" TargetType="{x:Type TextBlock}">
    <Setter Property="Margin" Value="2,2,2,2" />
    <Setter Property="Background" Value="Transparent" />
</Style>

2
Замість цього використовуйте TextBox.
Jim Balter

Відповіді:


132

Ні, вам потрібно обернути ваш TextBlock межею. Приклад:

<Border BorderThickness="1" BorderBrush="Black">
    <TextBlock ... />
</Border>

Звичайно, ви можете встановити ці властивості ( BorderThickness, BorderBrush) також за допомогою стилів:

<Style x:Key="notCalledBorder" TargetType="{x:Type Border}">
    <Setter Property="BorderThickness" Value="1" />
    <Setter Property="BorderBrush" Value="Black" />
</Style>

<Border Style="{StaticResource notCalledBorder}">
    <TextBlock ... />
</Border>

31

TextBlock насправді не успадковується від Control, тому він не має властивостей, які ви, як правило, асоціювали б із Control. Найкращим варіантом для додавання рамки у стилі є заміна TextBlock міткою

Перегляньте це посилання, щоб дізнатись більше про відмінності між TextBlock та іншими елементами керування


3
Відмінна відповідь, я віддаю перевагу цьому перед необхідністю вводити інший контроль / кордон навколо нього. нічого собі з 2010 року і досі діє :)
корисно Бджола

Чудова інформація за цим посиланням, якого я не знав. Я віддаю перевагу цьому, оскільки рішення @ Heinzi не працює в моєму додатку. Незважаючи на спробу цього рішення, жодної межі не відображається.
IronRod
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.