创建实例 WPF InlineCollection

发布于 2024-10-06 15:21:16 字数 211 浏览 2 评论 0原文

我在运行时以编程方式填充一个类,并从构建 InlineCollection 类的集合开始。但是,InlineCollection 类无法实例化。

我的问题是,如果我无法创建它的实例,如何将内联集合添加到类型为 InlineCollection 的 Span.Inlines 中?

基本上我需要一组内联类的集合,因此我可以随机将 Span.Inlines 设置为新的内联类集合。

I'm populating a class programtically at runtime, and started by building a collection of InlineCollection classes. However, InlineCollection class cannot be instantiated.

My question is, how do I add a collection of inlines to Span.Inlines whose type is InlineCollection, if I can't create an Instance of it?

Basically I need a collection of a collection of Inline classes, so I can randomally set Span.Inlines to a new collection of Inline classes.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酒解孤独 2024-10-13 15:21:16

是的,因为您无法实例化 InlineCollection 类,但您可以做的是使用例如 List 并填充它。

稍后很容易将它们应用到例如 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);

yes, as you cannot instantiate InlineCollection class, but what you can do is to use for example List<Inline> and populate this.

later it is easy to apply them to, for example, a 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);
眸中客 2024-10-13 15:21:16

看看这里: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);

Have a look here: http://msdn.microsoft.com/en-us/magazine/cc163371.aspx

It looks like what you want to do is:

span.Inlines.Add(new Run("Some normal text"));
var b = new Bold();
b.Inlines.Add(new Run(" Some bold text"));
span.Inlines.Add(b);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文