文本框内的文字和文本框外的文字有什么区别
What is the difference between text in a textbox and text outside the textbox
所以在wpf中xaml你可以这样写:
<TextBlock Text="Light"/>
但是我看到有些人是这样写的:
<TextBlock>Light</TextBlock>
有什么区别吗?为什么我们可以用两种方式来写呢?是否有任何性能提升?可移植性?
谢谢!
如果您像您的示例一样使用普通或静态(hart 编码)字符串,则两者都是相同的。第一个是完整的形式,第二个是镜头切入。否则,如果你想使用动态值,那么第一个最好的方法是通过绑定。如果你想使用像'&'这样的特殊字符,那么第二个是最好的方法。
我看到的最大区别是第一个选项允许您绑定到某些东西。您的文本可能来自不同的地方,例如另一个控件、视图模型等。
Why can we write in two ways?
可以将内容放入元素中,以便能够向 TextBlock 添加内联:
<TextBlock>
<Run>Light</Run>
<LineBreak />
<Run FontWeight="Bold">Bold</Run>
</TextBlock>
如果您只添加一个字符串作为 TextBlock 元素的内部文本 (<TextBlock>Light</TextBlock>
),XAML 解析器将简单地将 TextBlock 的文本 属性 设置为此字符串而不是创建内联并将其添加到 TextBlock 的内联集合。
因此结果没有区别,两种语法都会将 TextBlock 的 Text 属性 设置为 Text。
Are there any performance gains?
没有。基本上这只是做同样事情的两种不同方式,即设置 TextBlock 的 Text 属性。
视图的 XAML 标记只是一个基于 XML 的长字符串,在您构建应用程序时会被编译到 BAML 中。然后 WPF 运行time 解析 BAML 令牌并创建相应的 UI 元素并在您 运行 应用程序时设置它们的属性。在 运行 时,如何在标记中设置 TextBlock 的文本 属性 并不重要。
所以在wpf中xaml你可以这样写:
<TextBlock Text="Light"/>
但是我看到有些人是这样写的:
<TextBlock>Light</TextBlock>
有什么区别吗?为什么我们可以用两种方式来写呢?是否有任何性能提升?可移植性?
谢谢!
如果您像您的示例一样使用普通或静态(hart 编码)字符串,则两者都是相同的。第一个是完整的形式,第二个是镜头切入。否则,如果你想使用动态值,那么第一个最好的方法是通过绑定。如果你想使用像'&'这样的特殊字符,那么第二个是最好的方法。
我看到的最大区别是第一个选项允许您绑定到某些东西。您的文本可能来自不同的地方,例如另一个控件、视图模型等。
Why can we write in two ways?
可以将内容放入元素中,以便能够向 TextBlock 添加内联:
<TextBlock>
<Run>Light</Run>
<LineBreak />
<Run FontWeight="Bold">Bold</Run>
</TextBlock>
如果您只添加一个字符串作为 TextBlock 元素的内部文本 (<TextBlock>Light</TextBlock>
),XAML 解析器将简单地将 TextBlock 的文本 属性 设置为此字符串而不是创建内联并将其添加到 TextBlock 的内联集合。
因此结果没有区别,两种语法都会将 TextBlock 的 Text 属性 设置为 Text。
Are there any performance gains?
没有。基本上这只是做同样事情的两种不同方式,即设置 TextBlock 的 Text 属性。
视图的 XAML 标记只是一个基于 XML 的长字符串,在您构建应用程序时会被编译到 BAML 中。然后 WPF 运行time 解析 BAML 令牌并创建相应的 UI 元素并在您 运行 应用程序时设置它们的属性。在 运行 时,如何在标记中设置 TextBlock 的文本 属性 并不重要。