我们看到了一些属性TextBlock或者Grid是这样的:
<TextBlock x:Name="TextBlock1" ...
Run Code Online (Sandbox Code Playgroud)
为什么我们包括这个(x)?为什么我们不说:
<TextBlock Name="TextBlock1" ...
Run Code Online (Sandbox Code Playgroud)
我的意思是,我们已经在这个TextBlock的定义范围内,对吧?
必须有这样的理由.
提前致谢.
作为Gabe答案的扩展,x:Name是附属属性.附加属性与标准属性不同,因为它们(通常)未在使用它们的控件上定义.例如,TextBlock控件没有x:Name属性 - 相反,此属性在别处(在XAML命名空间中)定义,并且"附加"到TextBlock控件以实现它的行为.它说"我想使用可以在XAML命名空间中找到的Name附加属性."当然,为了使事情复杂化,TextBlock控件具有Name属性(它在Silverlight 2中不常用,因此你需要改为使用x:Name附加属性.但它们做同样的事情.
另一个(更容易理解)附加属性的示例是Grid.Row.您可以在TextBlock控件上使用此属性来指定控件应在Grid中显示的行,即使它未在该控件上定义(Grid控件定义它).TextBlock只是将该属性附加到自身,该属性将自身与该行为相关联.这最初是一个令人困惑的概念,但非常强大和有用.有关附加属性的更多信息,请访问:http://msdn.microsoft.com/en-us/library/cc265152(VS.95).aspx.
希望这可以帮助...
克里斯
| 归档时间: |
|
| 查看次数: |
893 次 |
| 最近记录: |