为什么特殊字符是无效的按钮内容?

Why special Characters is invalid button content?

这有什么问题 << xaml 不接受这样的按钮名称 < , > , & , "" 和 space 谢谢

要解释这种行为,我们需要了解以下内容:

Button is one of content controls, which are simply controls that are constrained to contain a single item. Content controls all derive from System.Windows.Controls.ContentControl, which has a Content property of type Object that contains the single item. Because a content control’s single item can be any arbitrary object, the control can contain a potentially large tree of objects. There just can be only one direct child.

如果您打开一个错误列表 window,您可以在那里看到很多错误,而不仅仅是图片中的那个。

对我来说,是

  • 缺少白色 space。
  • 属性中的值“<”无效。
  • 需要 XML 标签名称。
  • 令牌“” Horizo​​ntalAlignment="Left"(为简洁起见省略)是意外的。
  • 2x 左尖括号字符“<”在属性中无效。 应该写成&lt;.

现在,您可以猜到为什么它不是有效字符,更不用说在上一个错误中也描述了解决方案。编译器很困惑,它认为你嵌套在一个新的 UI 元素中。

至于另一个关于名称中不允许使用字符的问题,这是显而易见的。它们不允许在 C# 或 VB.NET 中的名称中使用。如果你在 XAML 中尝试它,它会产生一个错误,说明什么是允许的。这只是设计团队做出的决定。在某些语言中,这些字符可以用作对象的标识符。

下面有更详尽的解释blog post

试试这个:

<Button Content="&lt;&lt;"/>

尝试 &#171; 用于 << 和 &#187; 用于 >> 这称为 "ISO Latin-1 code" 更多结帐此 link: http://www.utexas.edu/learn/html/spchar.html

我刚刚写了一个答案

I guess you should use < instead.

其实我是说

I guess you should use &lt; instead.

我回答中的字符 < 被转义为 <.

<Button>&lt;</Button>