假设我有一个空的 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(使用前将#替换为@)