我在运行时以编程方式填充类,并通过构建InlineCollection类的集合开始。但是,无法实例化InlineCollection类。
我的问题是,如果我不能创建它的实例,如何向Span.Inlines添加一个内联集合,其类型为InlineCollection?
基本上我需要一个Inline类集合的集合,所以我可以将Span.Inlines设置为一个新的Inline类集合。
答案 0 :(得分:3)
是的,因为你无法实例化InlineCollection
类,但你可以做的是使用例如List<Inline>
并填充它。
以后很容易将它们应用到例如TextBlock
:
// create some inlines
List<Inline> inlines = new List<Inline>();
inlines.Add(new Run() { Text = "text" });
Span span = new Span();
span.Inlines.AddSafe(new Run() { Text = "text inside span" });
inlines.Add(span);
// now apply to a TextBlock
TextBlock tb = new TextBlock() { TextWrapping = TextWrapping.Wrap };
tb.Inlines.Clear();
foreach (Inline i in inlines)
tb.Inlines.Add(i);
答案 1 :(得分:2)
看看这里:http://msdn.microsoft.com/en-us/magazine/cc163371.aspx
看起来你想要做的是:
span.Inlines.Add(new Run("Some normal text"));
var b = new Bold();
b.Inlines.Add(new Run(" Some bold text"));
span.Inlines.Add(b);