2011-02-24 207 views
7

我对WPF有点新,不知道这个问题是不是很奇怪。我想知道是否可以在textBlock中的文本周围添加边框。如何将边框添加到WPF中的TextBlock中的文本?

编辑:

按照建议,我曾经尝试都但不是很成功:

<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" /> 

我在这里干什么什么了吗?

+0

这对你的代码来说都很好。你不喜欢什么? – 2011-02-24 15:11:09

+2

他的问题是“如何在文本INSIDE(又一个textBlock的内容)周围添加边框”......没有人回答这个问题。我也想知道如何做到这一点。 – zezba9000 2012-09-15 06:06:09

+1

看看这个答案 - http://stackoverflow.com/questions/93650/apply-stroke-to-a-textblock-in-wpf – zezba9000 2012-09-15 06:12:26

回答

3

在这种情况下,我使用LabelTextBlock置于Border

0

,如果你只是想有你周围或文本块任何其他控件使用边界:

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

设置喜欢的颜色,cornerradius,厚度,边框属性...

4

目前您的方法是但是,如果您在网格(或任何其他容器)中声明了文本块/标签,那么它的内容将会伸展。 尝试VerticalAlignment和/或的Horizo​​ntalAlignment设置为适当的设置(前/左,中)..

是这样的:

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

菲利普是正确的 - 如果网格/包含其他对象,那么边界将有效覆盖整个网格 - VerticalAlignemnt和Horizo​​ntalAlignment修复了这个问题。不直观! – Ricibob 2011-10-05 10:55:50

2

假设你所要求的全尺寸的TextBlock有边界TextBlock的范围内覆盖,你可以在网格包裹,并画出边界在这样​​TextBlock的顶部...

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

因为我们没有指定在TextBlock的网格行和列和边界将边框叠加在TextBlock的顶部。

相关问题