首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

浅谈WPF中x姓名空间(一)

2012-08-29 
浅谈WPF中x名称空间(一) .?? 不知道各位同行在创建第一个WPF应用程序时,由编译器自动生成的xaml代码,对于W

浅谈WPF中x名称空间(一) .

?? 不知道各位同行在创建第一个WPF应用程序时,由编译器自动生成的xaml代码,对于Window这个根节点处,有没有发现x:Height="300" Width="300">

?

后台的cs代码:

public partial class Window9 : Window    {        public Window9()        {            InitializeComponent();            List<Student> students = new List<Student>(){                new Student(){Id=1,Name="Tim",Age=21},                new Student(){Id=2,Name="Tom",Age=22},                new Student(){Id=3,Name="Jim",Age=23}            };            this.listBox1.ItemsSource = students;            //this.listBox1.DisplayMemberPath = "Name";            Binding bind = new Binding("SelectedItem.Name") { Source = this.listBox1 };            this.textBox1.SetBinding(TextBox.TextProperty, bind);        }    }

?

2、x:ClassModifier 这个Attribute的作用是告诉XAML编译器生成的类是有什么样的访问修饰符修饰的。在使用该Attribute的时候必须注意:

使用该Attribute的标签必须具有x:Class Attributex:ClassModifier的值必须与x:Class的值所指示的类型的访问修饰符保持一致

比如你在xaml代码中的Window标签中使用了x:ClassModifier="public",那么首先该标签中必须存在x:Class=""这样的Attribute-Value。同时xaml对应的cs代码这个类必须也是public的。

3、x:Name? 关于这个Attribtue,我给它的定义就相当于一个人的名字,用于区分。举这样一个例子吧!如果现实生活中,一位老师第一次到一个班去上课,此时她没有同学们的资料,这样你能分别出各位同学吗?如果老师有同学们的资料,那么老师可以根据念姓名来找到对应的同学,那x:Name就有这样的作用了!

???? x:Name的作用有两个:

告诉XAML编译器,当一个标签带有x:Name属性时,除了为这个标签生成对应的实例外还为这个实例声明一个引用变量,变量名就是x:Name的值如果设置了x:Name的标签具有Name的属性,那么将Name属性的值设为x:Name的值,并把这个值注册到UI树上,以达到方便查找的目的

4、x:FieldModifier 关于这个Attribute,是用来设置引用变量的访问修饰符的。但是必须在使用了x:Name的标签中使用x:FieldModifier属性。因为x:FieldModifier对应的值是为x:Name所生成的引用变量设置访问修饰符的。

5、x:Key 在任何的xaml中我们都可以定义Resource,我们可以提取一些内容放置在Resource中,当然每种内容都必须有自己独特的标识,那x:Key就是这个作用了,在使用某种内容时,我们就可以根据x:Key 来检索对应的资源了。

6、x:Shared? 在利用Attribute x:Key检索对象时,都会得到一个对象,如果所检索的对象未使用x:Shared标签,那么第一次检索对象时得到一个对象,当第二次使用时那么只能得到第一次检索对象的一个副本。不断的使用同一检索对象,在内存中副本就会增加,同时也加大了内存的消耗。如果所检索的对象中使用了x:Shared="true"标签,那么不管重复使用多次所检索的对象,都是使用的同一个对象。这就减少了内存的消耗了!

热点排行