读取使用内联填充的 C# Textblock 文本属性

2023-12-05

假设我有一个空的 Textblock :

textblock1.Text = "";

然后我只用这两条语句将内联内容放入其中:

textblock1.Inlines.Add(new Run() { Text = "A. ", Foreground = Brushes.Red });
textblock1.Inlines.Add(new Run() { Text = responses.Current.Value, Foreground = Brushes.Black});

令人惊奇的是,我可以在窗口中正确地可视化内容,但是 Textblock 的 Text 属性始终为空!这会导致问题,因为我需要将此文本块的值传递给另一个文本块。

我真的无法弄清楚的另一件事是,当我第二次调用我的函数时,textblock1.Text 属性正在正确更新!除第一次外,每次通话都会正确更新!我在 msdn 上花了几个小时,但我真的很困惑。此外,我可以在网站上阅读:

Text 属性返回一个值(InlineCollection 中所有 Run 元素的附加文本)。但是,返回的值不包括已应用于 Run 元素的任何格式。

我非常仔细地检查了我的代码并进行了调试,看看是否有任何其他地方可以操纵这些属性,但我还没有找到。如果有人有任何想法,对我来说这件事变得毫无意义......


只是为了详细说明我的评论以赋予一些意义,

From MSDN 文档

已加载意味着包含元素的逻辑树是完整的

这对我们有帮助,因为这里的绑定引用了另一个TextBlock元素。绑定还取决于DataContext以及与特定相关的其他一些因素Binding但一般来说,它们会在 UI 加载后进行评估,这是有充分理由的。

因此设置Text来源的TextBlock一旦 UI 加载,一切都会正常工作Binding那时是活跃的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取使用内联填充的 C# Textblock 文本属性 的相关文章

随机推荐