WPF为TextBlock添加边框


77

是否可以在文本块中添加边框。我需要将其添加到以下代码的setter属性中:

<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

Answers:


132

不,您需要将TextBlock包裹在Border中。例:

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

当然,您也可以通过样式设置这些属性(BorderThicknessBorderBrush):

<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关联的属性。在样式中添加边框的最佳选择是用Label替换TextBlock

有关TextBlock和其他控件之间的区别的更多信息,请参见此链接


3
很好的答案,我更喜欢此方法,而不必在其周围引入另一个控件/边界。自2010年以来哇,并且仍然有效:)
有用的蜜蜂

我不知道的那个链接的好信息。我更喜欢@Heinzi的解决方案在我的应用中不起作用。尽管尝试了该解决方案,但没有边框显示。
IronRod
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.