当我使用Visual Studio向我的xaml文件添加一些控件时,它使用name属性设置控件名称,但也有x:name.
是否存在差异以及何时使用它们?
谢谢.解决方法 简单来说
是,有一点不同.底线是x:name可用于没有自己的name属性的对象元素.
更长的解释
您只能在表示实际具有name属性的对象的元素上使用name.例如,任何派生自FrameworkElement的东西.
x:name属性可以放在表示对象的任何元素上,无论该对象是否实际具有name属性.如果对象确实具有name属性,则x:name的值将分配给它,因此您不能在同一元素上同时具有x:name和name.
当对象具有name属性或x:name属性时,该属性的值与对象树中的对象条目相关联.通过对象树,FrameworkElement的Findname方法可以找到一个对象. Findname可以按名称查找对象,即使该对象没有自己的name属性,因为它使用对象树中记录的名称.
UserControl的自动生成代码将包含具有name或x:name属性的任何元素的字段定义.生成的InitialiseComponent方法将使用Findname方法为这些字段分配值.
例
上面的Xaml创建两个GrID类型的LayoutRoot和SolIDcolorBrush类型的MyBrush.如果您要将x:name =“LayoutRoot”更改为name =“LayoutRoot”,则不会更改任何内容. GrID有一个name属性.但是请尝试将x:name =“MyBrush”更改为name =“MyBrush”.这不起作用,因为SolIDcolorBrush没有name属性.使用上面的Xaml,您可以像这样执行代码: –
public MainPage() { InitializeComponent(); MyBrush.color = colors.lightGray; }
打开InitializeComponent的定义并查看自动生成的代码.
总结以上是内存溢出为你收集整理的silverlight – x:xaml文件中控件的名称和名称有什么区别吗?全部内容,希望文章能够帮你解决silverlight – x:xaml文件中控件的名称和名称有什么区别吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)