我想将一些文本放在一个矩形内,并在这个矩形周围用笔划(就像对象“矩形”本身的属性“Stroke”)。但我没有设法找到对象“Textblock”的属性,它定义了这样一个笔画。
答案 0 :(得分:5)
您可以将TextBlock
置于Border
内,并设置Border
的属性以在文字周围绘制矩形。
答案 1 :(得分:0)
每个TextBlock
元素都包含一个或多个子Inline
元素。有一种内联(InlineUIContainer
)支持宿主UIElement:基本上,这意味着您可以在TextBlock中宿主任意UI元素。翻转@GraemeF's answer,可以在TextBlock内部 中托管一个Border
元素,如下所示:
<Window x:Class="StackOverflowWpf.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<TextBlock FontSize="24" Padding="20">
<Run>Hello</Run>
<InlineUIContainer>
<Border BorderBrush="Black" BorderThickness="1" Padding="4" Margin="0,0,0,-11">
<TextBlock Text="Boxed" />
</Border>
</InlineUIContainer>
<Run>World</Run>
</TextBlock>
</Window>
这看起来像这样:
您必须尝试在Border元素上使用Margin才能使文本基线匹配,但除此之外,该技术似乎效果很好。