无废话WPF系列4: x名称空间

本文详细介绍了XAML中的xmlns:x命名空间及其应用方式,包括标签扩展、XAML指令元素及属性等内容。通过具体示例解释了x:Class、x:ClassModifier、x:Name等属性的作用,以及如何在XAML中使用数据类型静态成员。

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

这个命名空间存放的就是XAML和XAML编译器沟通的东西,比如编译时与那个C#代码合并等

一、 在XAML中出现的方式有三种

1.标签扩展: x:Array, x:Null, x:Static, x:Type

2. XAML指令元素: x:Code, x:XData

3. Attribute: x:Class, x:ClassModifier, x:FieldModifier, x:Key, x:Name, x: Shared, X:Subclass, x:TypeArguments, x:Uid.

二、详解

x:Class:告诉XAML编译器将XAML标签的编译结果与后台制定的类合并,这个类必须使用partial关键字。

x:ClassModifier:告诉生成的类的访问级别,标签必须具有x:Class Attribute.

x:Name: XAML标签对应着一个对象。告诉XAML编译器为这个标签生成对应实例外还要为这个实例声明一个引用变量,变量名是x:Name的值,把

             XAML标签对应对象的Name属性也设为x:Name的值,并把这个值注册到UI树上,方便查找。

x:FieldModifier: 是用来改变引用变量访问级别的,很显然,需要和x:Name同时使用。

x:Key: 把东西存放到资源字典Resource Dictionary里的Key,检索时用这个Key

x:Shared: 是否检索对象时使用同一个还是副本,比如前所资源字典里的内容。

x:Null: 清除一些设置,比如全局style设置的Button样式,某个Button不想用,可以使用Style=”{x:Null}”.

x:Array:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<Window x:Class= "DeepXAML.MainWindow"
         xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local= "clr-namespace:DeepXAML"
         xmlns:sys= "clr-namespace:System;assembly=mscorlib"
         Title= "MainWindow"  Height= "350"  Width= "525" >
     <Grid>
         <ListBox Margin= "5" >
             <ListBox.ItemsSource>
                 <x:Array Type= "sys:String" >
                     <sys:String>Jack</sys:String>
                     <sys:String>Justin</sys:String>
                     <sys:String>David</sys:String>
                 </x:Array>
             </ListBox.ItemsSource>
         </ListBox>
     </Grid>
</Window>
image

 

x:Static: 在XAML中使用数据类型的静态成员。

1
2
3
4
5
6
7
8
public  partial  class  MainWindow : Window
{
     public  static  string  Description = "Hello World" ;
     public  MainWindow()
     {
         InitializeComponent();
     }       
}

 

1
2
3
4
5
6
7
8
9
10
11
<Window x:Class= "DeepXAML.MainWindow"
         xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local= "clr-namespace:DeepXAML"      
         Title= "MainWindow"  Height= "350"  Width= "525" >
     <Grid>
         <StackPanel>
             <TextBlock FontSize= "20"   Text= "{x:Static local:MainWindow.Description}"   ></TextBlock>
         </StackPanel>
     </Grid>
</Window>

 

image

本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2011/02/19/1958578.html如需转载请自行联系原作者


王德水

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值