我有这个C#代码用于填充手机屏幕上的标签。请注意,这里不使用HTML源代码。
c1Label.Text = "To select cards for your deck you can one of a number of options •
和这个XAML
<local:JustifiedLabel x:Name="c1Label" Text= "To select cards for your deck you can one of a number of options •
前者显示&amp;#10作为文本的一部分,但XAML版本工作正常并将其显示为换行符后跟子弹。
答案 0 :(得分:6)
这是可以预料的。两种语言(C#和XML)都有不同的规则,特别是关于哪些字符是“特殊的”以及当你想要使用它们时必须如何转义它们。在C#字符串
中" •"
正是那些字母,因为它们对C#编译器没有特殊意义。在XML中,它们是数字字符引用,是包含任意字符的转义机制。
相反,在C#中如下
"\n \u2022"
代表换行符和子弹。但在XML中,它只是所写的确切字符。
你可以用几乎任何两种不同的语言构建无穷无尽的例子。是的,这意味着您不能只从一种语言复制文本,并期望它用另一种语言表示相同的字符串。如果你正在将一种语言转换成另一种语言,那么很容易以编程方式处理,当你手动复制东西时,你只需要忍受这种情况并相应地进行调整。