WPF 中 x:Name 和 Name 的区别

1. xmal中,永远只有一个, 它就是x:Name
2. 我们在xaml中有时能使用的Name,其实是被映射到x:Name上的。

原因:
1. 所有的Type在xaml中都能使用x:Name,即使这个type 没有定义一个叫着Name的Property。因为xmal会在后台为其分配一个field来存储,以便在Binding等里面使用。
2. 像FrameworkElement, VisualStateGroup的某些type,我们在xaml中可以使用Name来代替x:Name,因为它们定义了Name Property,但是最关键的是在type上声明了一个Attribute,[RuntimeNameProperty("Name")],正是这个attribute把Name映射到了x:Name上,所以让Name可以做到x:Name的功能。

扩展:
如果我们的某些type需要定义一个 Property,并且想做到x:Name的能力,别忘了加上RuntimeNamePropertyAttribute!
-摘自 葡萄城产品技术社区

 

 

http://www.taobao.com/go/chn/tbk_channel/channelcode.php?pid=mm_30300576_2691346_10093586&eventid=101329

posted @ 2012-03-21 11:34  帕丁顿熊  阅读(1517)  评论(1编辑  收藏  举报