我知道如何通过调用canvas.Childern.Add()
将控件添加到canvas / grid / layout。但是,当我想在文本块中嵌入某些东西时,我似乎无法找到它的方法。一个文本块不包含Add
方法或任何东西,所以我有点迷失。
我试图变成C#的XAML是:
<TextBlock x:Name="textBlock">
<Line X1="0" Y1="0" X2="100" Y2="0" Stroke="Black" StrokeThickness="4" x:Name="line1"/>
<TextBlock Text="Hello there!" VerticalAlignment="Center" HorizontalAlignment="Center" x:Name="innerTextBlock" />
<Line X1="0" Y1="0" X2="100" Y2="0" Stroke="Black" StrokeThickness="4" x:Name="line2"/>
</TextBlock>
编辑:我认为最好的方法(除了答案)是简单地创建一个WPF用户控件并引用它。
答案 0 :(得分:12)
你必须使用inlines属性(如前所述),所以要重现你的xaml就足以执行以下操作(其中LayoutRoot是父控件的名称):
var t = new TextBlock();
t.Inlines.Add(new Line { X1 = 0, Y1 = 0, X2 = 100, Y2 = 0, Stroke = new SolidColorBrush(Colors.Black), StrokeThickness = 4.0 });
t.Inlines.Add("Hello there!");
t.Inlines.Add(new Line { X1 = 0, Y1 = 0, X2 = 100, Y2 = 0, Stroke = new SolidColorBrush(Colors.Black),StrokeThickness = 4.0});
LayoutRoot.Children.Add(t);
答案 1 :(得分:4)
我相信如果你有多行,你必须使用Inlines属性,该属性是一个包含内联元素列表的集合。您不能直接向其添加文本,必须将其添加到Inline对象 - 例如Run。