下划线不允许使用Control的属性名称

时间:2016-09-20 13:44:11

标签: c# wpf

Button btn = new Button();
btn.Name = "R-F"; // ArgumentException...not a valid value

enter image description here

btn.Name = "RF"; // OK

为什么我不能用包含下划线或连字符的字符串命名控件,而我可以用一个命名一个类或一个对象变量?

2 个答案:

答案 0 :(得分:2)

最可能的原因是该名称将用作XML中的标识符。

在任何情况下,FrameworkElement.Name的文档都清楚地说明了限制:

  

用于Name的字符串值具有一些限制,这是由XAML规范定义的基础x:Name指令强加的。最值得注意的是,名称必须以字母或下划线字符(_)开头,并且必须仅包含字母,数字或下划线。有关详细信息,请参阅WPF XAML Namescopes

因此,根据文档,下划线 合法。 连字符但不是。

答案 1 :(得分:0)

您不能在类/对象的名称中使用连字符。下划线很好。