为什么这个例子,里面的border名字,有重复,也是可以的?
下面,有两个名字都为Border1的Border,为什么编译不会出错?是什么原因?--------------------编程问答-------------------- 那个明明在Resource中嘛!
<Window.Resources>
<ControlTemplate x:Key="MyButton" TargetType="{x:Type Button}">
<Grid>
<Border Name="Border1"></Border>
<ContentPresenter></ContentPresenter>
</Grid>
</ControlTemplate>
</Window.Resources>
<Grid>
<Button Name="Button1" Template="{DynamicResource MyButton}" Foreground="Red">sdfsdf</Button>
<Border Name="Border1"></Border>
</Grid>
假设超时的广告上有个龙虾,你拿到了超市广告跟你实际拿到了一只龙虾一样吗?
那不过是一个模板定义,其中的Border1跟你实际的命名为Border1的对象是两回事。 --------------------编程问答-------------------- 模板跟其实例化是不一样的。当它被实例化之后,就好象你在另外一个用户控件中使用border1命名一样,那是允许的。 --------------------编程问答-------------------- 你在2楼的比喻是很恰当。
但是,如果实例化后呢?感觉还是有点乱。
例如,再举个例子,下面里子,为什么后代中调用的时候,是this.Border2?为什么不是this.Border1.Border2?
<Grid>
<Button Name="Button1" Template="{DynamicResource MyButton}" Foreground="Red">sdfsdf</Button>
<Border Name="Border1">
<Border Name="Border2">
</Border>
</Border>
</Grid>
--------------------编程问答-------------------- 讨论这个干什么啊 --------------------编程问答-------------------- 呵呵。
我只是在命名的时候,感觉有点乱。
补充:.NET技术 , C#