1 X:Class

作用告诉XAML编译器将XAML标签的编译结果与后台代码中指定的类合并,只能用于根节点,并且与之同名的类需要有Partial 例如窗口

2 X:ClassModifier

作用告诉XAML编译器有标签编译生成的类具有怎样的访问控制级别(Public,Privare Internal Protect…..) “访问级别必须和同名类的访问级别一样”

3 X:Name

前言  一个XAML标签对应一个对象,这个对象一般是一个空间的实例,在.NET平台上类是引用类,引用类型的实例在使用时一般是以“引用者->实例“的形式成对出现的,而且我们只能通过引用者来访问实例,当实例不在被任何引用者引用则当做垃圾被销毁

例子

XAML编码

<Grid>
<TextBox x:Name="text" x:FieldModifier="public"></TextBox>
<Button Content="引用解析" Click="Button_Click"></Button>
</Grid>

C#中使用编码

private void Button_Click(object sender, RoutedEventArgs e)
{
Grid g = this.Content as Grid;//窗体的属性Content引用着Grid的实例
TextBox t = g.Children[0] as TextBox;//Grid的实例Children[0]又引用着TextBox的实例
if (string.IsNullOrEmpty(t.Name))//判断TextBox的特征Name是否为空
{
t.Text = "";
}
//if (string.IsNullOrEmpty(text.Name))//判断TextBox的特征Name是否为空
//{
// text.Text = "";
//}
}

使用X:Name

X:Name 为标签生成对应实例的引用,并把这个值注册到UI树上,其值即为引用变量,

4 X:FidldModifier

控件的访问级别(即控件的引用变量的访问级别)

作用:X:Name=Value Value即为控件的引用变量,默认控件的访问级别为Internal,如果需要从一个程序集访问另一个程序集窗体的控件就需要更改次特性为public

<TextBox x:Name="text" x:FieldModifier="public"></TextBox>

5 X:Key

在XMAL中我们可以把很多需要多次使用的内容提取出来放在资源字典中,需要使用这个资源的时候就使用它的X:Key检索出来(如重复使用的Style Template Data 动画等)

X:Key作用就是为资源贴上用于检索的索引

 XAML编码

<Window.Resources>
<sys:String x:Key="mystring">Hello word</sys:String>
</Window.Resources>
<StackPanel>
<TextBox Text="{StaticResource ResourceKey=mystring}"></TextBox>
<TextBox x:Name="t"></TextBox>
<Button Content="C#使用X:Key" Click="Button_Click"></Button>
</StackPanel>

C#编码

private void Button_Click(object sender, RoutedEventArgs e)
{
string str = this.FindResource("mystring") as string;
t.Text = str;
}

6 X:Shared

X:shared 与X:Key配合使用,X:Shared=True(默认)每次检索到这个资源对象的时候都是同一个对象,否则我们得到的是这个对象的一个新的副本

7 X:Type

X:Type的值是一个数据类型,

.Net名为Type的类作为所有数据类型在编程层面的抽象

public class MyButton:Button
{
public Type UserWindow { get; set; }
protected override void OnClick()
{
base.OnClick();
Window main = Activator.CreateInstance(this.UserWindow) as Window;
if(main!=null)
{
main.ShowDialog();
}
}
}

或者

8 X:Null

显式的对一个属性赋一个空值

<Window.Resources>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="44"></Setter>
<Setter Property="Background" Value="Blue"></Setter>
<Setter Property="FontStyle" Value="Italic"></Setter>
</Style>
</Window.Resources>
<StackPanel Margin="5">
<TextBlock Text="Hello word"></TextBlock>
<TextBlock Text="Hello word"></TextBlock>
<TextBlock Text="Hello word" Style="{x:Null}"></TextBlock>
</StackPanel>

9 X:Array

X:Array的作用就是通过它的Item属性向使用者暴漏一个类型已知的ArrayList实例,其类型有X:Array的Type指定

<Grid>
<ListBox>
<ListBox.ItemsSource>
<x:Array Type="sys:String">
<sys:String>Time</sys:String>
<sys:String>Date</sys:String>
<sys:String>Mouth</sys:String>
</x:Array>
</ListBox.ItemsSource>
</ListBox>
</Grid>

10 X:Static

在XAML文档中使用数据类型的statc成员(一定是数据类型的属性或字段)

 C#后台代码里面定义二个静态字段

public partial class XStatic : Window
{
public static string WindowTitle = "小石潭记";
public static string ShowText { get { return "输欧输出"; } }
public XStatic()
{
InitializeComponent();
}
}

 XAML引用(部分代码)

Window x:Class="深入浅出WPF.View.XStatic"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:深入浅出WPF.View"
Title="{x:Static local:XStatic.WindowTitle}" Height="300" Width="300">
<Window.Resources>
<XmlDataProvider x:Key="dataProvider" XPath="GameStates" Source="XML\XMLData.xml"></XmlDataProvider>
</Window.Resources>
<StackPanel>
<TextBox Text="{x:Static local:XStatic.ShowText}"></TextBox>

11 X:XData和X:Code (指令元素)

 X:Code作用是可以在XAMl里面写C#的逻辑代码

XmlDataProvider数据提供者,XmlDataProvider提供的数据就放在X:XData标签里面

<Window.Resources>
<XmlDataProvider x:Key="xdp" XPath="FileSystem/Folder">
<x:XData>
<FileSystem xmlns="">
<Folder Name="Books">
<Folder Name="Programming">
<Folder Name="Window">
<Folder Name="WPF"/>
<Folder Name="WCF"/>
</Folder>
</Folder>
<Folder Name="Tool">
<Folder Name="Java"/>
<Folder Name="C#"/>
<Folder Name="C++"/>
</Folder>
</Folder>
</FileSystem>
</x:XData>
</XmlDataProvider>
</Window.Resources>

XMAL 中x名称控件的Auttribute的更多相关文章

  1. C#中的BackgroundWorker控件+Delegate.Invoke (委托同步调用)

    C#中的BackgroundWorker控件+Delegate.Invoke (委托同步调用) 简单代码,记录一下.一个BackgroundWorker控件  backgroundWorkerRefr ...

  2. C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变(转)

    在设计可供用户调整大小的窗体时,如何实现该窗体上的控件也应能正确地随窗体的改变而自动调整大小并且能重新定位?此时就要借助控件的.Anchor属性.Anchor属性定义控件的定位点位置.当控件锚定到某个 ...

  3. VISA资源名称控件

    NI-VISA能自动检测端口.通过前面板上的VISA资源名称控件或VISA查找资源函数可查看端口列表.在任何平台上,NI-VISA支持的最大串口数量为256,串口的默认数量取决于操作系统. VISA资 ...

  4. EBS OAF 开发中的OAMessageRadioGroup控件

    EBS OAF 开发中的OAMessageRadioGroup控件 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 简单介绍 RadioGro ...

  5. WPF-在Grid中编程添加控件

    摘要: 在Grid中编程添加控件,布局控件的位置用到的代码是: gridLayout.Children.Add(textblock); Grid.SetRow(textblock, ); Grid.S ...

  6. vs2010中关于HTML控件与服务器控件分别和js函数混合使用的问题

    此文档解决以下问题: 1.在.cs文件中如何访问html控件? 在html控件中添加属性runat="server"即可 2.在html控件中,如何调用js函数? 在html控件中 ...

  7. ASP.NET MVC 中使用用户控件——转

    讲讲怎么在 ASP.NET MVC2中使用用户控件.首先我们新建一个用户控件,   我们命名为SelectGroup.ascx,代码如下 <%@ Control Language="C ...

  8. 怎样在不对控件类型进行硬编码的情况下在 C#vs 中动态添加控件

    文章ID: 815780 最近更新: 2004-1-12 这篇文章中的信息适用于: Microsoft Visual C# .NET 2003 标准版 Microsoft Visual C# .NET ...

  9. C#中的BackgroundWorker控件

    C#中的BackgroundWorker控件   Keywords: C# .NET BackgroundWorkerSource: http://txw1958.cnblogs.com/ Backg ...

随机推荐

  1. WebApi官网学习记录---webapi中controller与action的选择

    如果framework找到一个匹配的URI,创建一个包含占位符值的字典,key就是这些占位符(不包括大括号),value来自URI或者默认值,这个字典存储在IHttpRouteData对象中.默认值可 ...

  2. web并发模型

    并发:cpu划分时间片,轮流执行每个请求任务,时间片到期后,换到下一个. 并行:在多核服务器上,每个cpu内核执行一个任务,是真正的并行 IO密集型的应用,由于请求过程中很多时间都是外部IO操作,CP ...

  3. 如何在程序退出的时候清除activity栈

    在公司里接手了一个后期的项目,由于项目前期对activity栈管理的不够谨慎,所以导致了在某些情况下程序退出的时候没有将activity栈清除掉.在网上找到的无非就是那几种例子,都不是最好的解决办法. ...

  4. DataGridView常用功能

    最近做Winform开发,DataGridView是必不可少的控件.整理了一下用到的基本功能的设置 1.情景1:当GridView的列没有自动填充,会出现一片空白的地方,特别不美观. 设置 自动填充G ...

  5. 及格率 不谢 cast(cast (sum(case when res>=60 then 1 else 0 end)*100/(count(1)*1.0) as float) as nvarchar)+'%' '及格率'

    --18.查询各科成绩最高分.最低分和平均分:--以如下形式显示:-- 课程ID,课程name,最高分,最低分,平均分,及格率,中等率,优良率,优秀率--及格为>=60,中等为:70-80,优良 ...

  6. 初识KMP

    KMP简介 KMP是一种由Knuth(D.E.Knuth).Morris(J.H.Morris)和Pratt(V.R.Pratt)设计的字符串匹配算法.对目标串T[0:n-1]中查找与之匹配的模式串P ...

  7. VIM编辑器操作指令

    VIM有三种操作模式: 1,命令模式--command mode 2,输入模式--insert mode 3,底行模式--last line mode [在命令模式的时候,按Shift +  :出现的 ...

  8. git操作流程

  9. 用Apache Ivy实现项目里的依赖管理

    Apache Ivy是一个管理项目依赖的工具. 它与Maven  Apache Maven 构建管理和项目管理工具已经吸引了 Java 开发人员的注意.Maven 引入了 JAR 文件公共存储库的概念 ...

  10. 子shell的$$

    http://blog.csdn.net/firefoxbug/article/details/7426109