以编程方式在文本块中添加一行

我知道如何通过调用canvas.Childern.Add()将控件添加到canvas / grid / canvas.Childern.Add() 。 但是,当我想在文本块中嵌入某些东西时,我似乎无法找到它的方法。 一个文本块不包含Add方法或任何东西,所以我有点迷茫。

我试图变成C#的XAML是:

      

编辑:我认为最好的方法(除了答案)是简单地创建一个WPF用户控件并引用它。

您必须使用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); 

我相信如果你有多行,你必须使用Inlines属性,它是一个包含内联元素列表的集合。 您不能直接向其添加文本,必须将其添加到Inline对象 – 例如Run。