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

时间:2015-01-13 08:26:57

标签: wpf xaml wpf-controls prism

enter image description here

这有什么问题<<给xaml中不接受的按钮名称 < ,> ,& ,“”和空间谢谢

5 个答案:

答案 0 :(得分:7)

试试这个:

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

答案 1 :(得分:2)

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

  

Button是内容控件之一,它只是简单的控件   约束包含单个项目。内容控件全部源自   System.Windows.Controls.ContentControl,具有Content属性   包含单个项目的Object类型。因为一个内容   控件的单项可以是任意对象,控件可以   包含一个可能很大的对象树。只有可以   一个直接的孩子。

如果您打开错误列表窗口,则可以看到许多错误,而不仅仅是图片中的错误。

对我来说,它是

  • 缺少空白区域。
  • 价值&#34;&lt;&#34;在属性中无效。
  • 期望XML标记名称。
  • 令牌&#34;&#34;的Horizo​​ntalAlignment =&#34;左&#34; (为简洁起见省略)是出乎意料的。
  • 2x开角括号字符&#39;&lt;&#39;在属性中无效。 应写为&amp; lt;

现在,你可以猜到为什么它不是一个有效的角色,更不用说在最后一个错误中也有一个解决方案。编译器很困惑,它认为你正在嵌套在一个新的UI元素中。

关于名称中不允许使用字符的其他问题,这很明显。它们不允许在C#或VB.NET中用于名称。如果您在XAML中尝试它,它将产生一个错误,说明允许的内容。这只是由设计这个的团队做出的决定。有些语言可以将这些字符用作对象的标识符。

以下blog post中有更详细的解释。

答案 2 :(得分:1)

试试&#171; for&lt;&lt;和&#187; for&gt;&gt;这被称为“ISO Latin-1代码”,以便更多结帐此链接: http://www.utexas.edu/learn/html/spchar.html

答案 3 :(得分:1)

我刚刚写了一个答案

  

我猜你应该使用&lt;代替。

但实际上我的意思是

  

我想你应该使用&amp; lt;代替。

我的回答中的字符&amp; lt; 已转义为&lt;

答案 4 :(得分:1)

<Button>&lt;</Button>