XAML中的“run text”标签是什么意思?

12

"Run text" 标记在 XAML 中是什么意思?

它似乎是由 Expression Blend 添加的,在我进行 WinMerge 时,我从之前发布的代码中注意到了它。

旧版本:

<TextBlock VerticalAlignment="Bottom" Height="20" >^</TextBlock> 

新的:

<TextBlock VerticalAlignment="Bottom" Height="20" ><Run Text="^"/></TextBlock>  

1
https://msdn.microsoft.com/en-us/library/system.windows.documents.run - SLaks
如果你查看定义新Word Docx格式的XML(使用winzip或类似工具打开),那么你会发现它使用了Runs。我理解的是,Runs基本上指的是具有一致格式的文本序列(包括换行符)。 - cjb110
4个回答

13

TextBlock 包含一个 Inlines 集合:TextBlock.Inlines 属性

Run 是一个内联级流内容元素,用于包含格式化或未格式化文本的一段内容:Run 类

这是它的使用示例:

<TextBlock Grid.Row="3" Name="myText" TextWrapping="Wrap">
    I go
    <LineBreak/>
    <Run FontStyle="Italic" Text="home"/>
</TextBlock>

3

TextBlock 不仅可以包含文本内容,还可以包含其他控件。在您的新版本中,TextBlock 的内容是一个 System.Windows.Documents.Run,其 Text 属性设置为 ^

这可能是由 Expression Blend 完成的,因为在某些情况下,^ 可以被认为是控制字符。通过将文本放入 Run 中,可以消除任何模糊性,使得 ^ 不是控制字符,而是文本。当处理复杂的设计时,最好尽可能消除歧义,所以 Blend 可能只是为了让其自己的解析引擎更容易而这么做。


1
XAML是一种标记语言,因此它是声明式的。这意味着XAML标记不应该是动词;XAML标记只能/只应该是名词。如果你刚刚意识到这一点,那么你就有了答案:``标记并没有告诉任何人去运行什么;它声明了一个文本运行,并且由于它嵌套在``标记中,所以很可能声明了一段文本的运行。
当然,这个认识可能不容易达到,因为“run”作为名词在英语中有些高级。因此,以下是一些来自wiktionary.org的“run”作为名词的例子:
- 一段由趋势标志的连续时间;一段由持续趋势标志的时间段。 - 我倒霉的时候总是接二连三。 - 他去了拉斯维加斯,在三天内花光了所有的钱。 - 游戏中一系列成功尝试。 - 生产数量(如在工厂中)。 - 昨天我们生产了12000个单位。
``标记存在的目的是为了让你在文本消息的不同部分使用不同的样式。

0

你可以在一个TextBlock中多次使用RunText。对于每个文本,如果你不想使用多个TextBlocks,并且这些文本将在运行时显示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接