zoukankan      html  css  js  c++  java
  • x:Name与Name区别

    x:Name与Name有两个不同点:

    1、x:Name是Xaml的标记特性,任何在Xaml中定义的元素,都可以使用x:Name来为元素指定名称。

    Name是FrameworkElement定义的依赖项属性(String类型),只有FrameworkElement的派生类才可以使用Name。

    例如,Ellipse的Fill属性的类型是Brush,Brush不是FrameworkElement的子类,它没有Name属性。

    因此,在Xaml中,为Brush指定名称时,只能使用x:Name标记特性:

    1. <!--Xaml code-->  
    2.   
    3. <Ellipse>  
    4.    <Ellipse.Fill>  
    5.        <SolidColorBrush x:Name="aliceBlue" Color="AliceBlue"/>  
    6.        <!--注销上面一行的代码,使用下面一行的代码无法通过编译-->  
    7.        <!--<SolidColorBrush Name="aliceBlue" Color="AliceBlue"/>-->  
    8.    </Ellipse.Fill>  
    9. </Ellipse>  

    2、在FrameworkElement的定义中,添加了System.Windows.Markup.RuntimeNamePropertyAttribute特性:

    该特性的作用是,当在Xaml中,使用x:Name后,该值将被自动赋给FrameworkElement的Name属性。

    可以使用RuntimeNamePropertyAttribut,为自己定义的类添加名称特性:

    [RuntimeNamePropertyAttribute("N1")] 

    [RuntimeNamePropertyAttribute("N2")] 
    public class Person : UIElement 

        public String N1 { get; set; } 
        public String N2 { get; set; } 
    }

    1.     <StackPanel>  
    2.         <wp:Person x:Name="WebAttack"/>  
    3.         <TextBlock>Name:</TextBlock>  
    4.         <TextBlock Text="{Binding ElementName=WebAttack, Path=N1}"/>  
    5.         <TextBlock>Nickname:</TextBlock>  
    6.         <TextBlock Text="{Binding ElementName=WebAttack, Path=N2}"/>  
    7.     </StackPanel>  
  • 相关阅读:
    mvc 在ii7上发布时遇到的问题只解决
    @Html.Raw 显示Html的标签
    补发————grid布局
    补发————DOM与BOM
    web实验博客3.css-position
    web专业课学习及往后方向发展
    bom&dom
    网格代码
    简单用户注册表单
    自我介绍
  • 原文地址:https://www.cnblogs.com/yangxk666/p/3759241.html
Copyright © 2011-2022 走看看