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. 上拉、下拉UITableView,交互式 模态弹出(自定义弹出动画)

    部分代码 InteractiveTransition 类继承NSObject: - (instancetype)initWithPresentingController:(UITableViewCon ...

  2. 函数内声明变量不加var和加var的区别

      这段代码说明了在函数中声明没加var关键字的变量时,会出现什么结果.   分两种不同的情况:   1.如果函数内没有同名的局部变量覆盖“无var变量”,那么它就是个全局变量,在函数外部也可以访问到 ...

  3. C语言运算符学习笔记

    运算符不仅具有不同的优先级,还有不同的结合性.在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算. C语言的 ...

  4. CodeForces 124B Permutations

    http://codeforces.com/problemset/problem/124/B Description You are given nk-digit integers. You have ...

  5. inPolygonTest学习和C++实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang 此篇博客实现了判定平面一点是否在给定多边形内部的功能.精确,性能优良,因为只包含加法和乘法运算,效 ...

  6. path类和directory类对文件的路径或目录进行操作

    Path: 对文件或目录的路径进行操作(很方便)[只是对字符串的操作] 1.目录和文件操作的命名控件System.IO    2.string Path.ChangeExtension(string ...

  7. PHP标记

    1. xml风格 <?php echo 'ok'; ?> 推荐风格 2. 简短风格 <? echo 'ok'; ?> 限制条件:在配置文件中启用short_open_tag选项 ...

  8. LUN----逻辑单元号

    LUN的全称是Logical Unit Number,也就是逻辑单元号.   一.概念   LUN的全称是Logical Unit Number,也就是逻辑单元号.我们知道SCSI总线上可挂接的设备数 ...

  9. QT字体的设置

    摘要: QT4.7.0在移植到开发板上的时候,中文支持是必不可少的,如何让QT支持中文,如何制作QT支持的字体文件,如何使QT UI编辑器中的字号与开发板中的字号一致.作者通过实验进行了一一验证. 介 ...

  10. form-validation-engine中的正则表达式

    form-validation-engine是一个不错的表单验证,可以玩玩. (function($) { $.fn.validationEngineLanguage = function() {}; ...