有时,Name
和x:Name
属性似乎是可以互换的。
那么,它们之间的明确区别是什么,什么时候使用一种比另一种更可取?
以错误的方式使用它们是否会对性能或内存产生影响?
发布于 2015-08-24 09:36:31
在XAML中声明Button元素时,您引用的是在windows运行时中定义的一个名为Button的类。
按钮有许多属性,如背景、文本、边距、.....以及一个名为Name的属性。
现在,当您在XAML中声明一个Button时,就像创建一个恰好有一个名为Name的属性的匿名对象。
一般而言,您不能引用匿名对象,但在WPF框架中,XAML处理器使您能够通过为Name属性指定的任何值来引用该对象。
到目前一切尚好。
创建对象的另一种方法是创建命名对象而不是匿名对象。在本例中,XAML名称空间有一个名为Name的对象的属性(由于它在XAML名称空间中,因此可以使用X:),您可以设置该属性,以便标识对象并引用它。
结论:
Name是一个特定对象的属性,但X:Name是该对象的一个属性(有一个定义通用对象的类)。
https://stackoverflow.com/questions/589874
复制相似问题