silverlight – x:xaml文件中控件的名称和名称有什么区别吗?

silverlight – x:xaml文件中控件的名称和名称有什么区别吗?,第1张

概述我是Silverlight的新手. 当我使用Visual Studio向我的xaml文件添加一些控件时,它使用Name属性设置控件名称,但也有x:Name. 是否存在差异以及何时使用它们? 谢谢. 简单来说 是,有一点不同.底线是x:Name可用于没有自己的Name属性的对象元素. 更长的解释 您只能在表示实际具有Name属性的对象的元素上使用Name.例如,任何派生自FrameworkEleme 我是Silverlight的新手.
当我使用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文件中控件的名称和名称有什么区别吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1002053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存