首页 > 其他分享 >XAML x 名称空间的介绍

XAML x 名称空间的介绍

时间:2024-01-11 11:36:12浏览次数:18  
标签:Name Attribute XAML 使用 介绍 名称 标签 属性

WPF学习目录

1.简介

x 名称空间映射 http://schemas.microsoft.com/winfx/2006/xaml,包含解析XAML语言相关的类。

XAML 编译器将XAML编译成微软中间语言和 C# 编译器将 C# 编译也成微软中间语言,使用 X名称空间可以将C#的编译结果和 C# 的编译结果合并。

x 名称空间是程序员能够和 XAML 编译器沟通的工具集合。

工具集合:

名称 种类(在XAML中出现的形式)
x:Array 标签扩展
x:Class Attribute
x:ClassModifier Attribute
x:Code XAML指令元素
x:FileModifier Attribute
x:Key Attribute
x:Name Attribute
x:Null 标签扩展
x:Shared Attribute
x:Static 标签扩展
x:Subclass Attribute
x:Type 标签扩展
x:TypeArguments Attribute
x:Uid Attribute
x:XData XAML指令元素

2.Attribute

X:Class

使用要求:
1.只能位于根节点
2.x:Class的值所指代的类型需要与根节点一致
3.x:Class的值所指代的类型必须使用 partial 关键字

x:ClassModifier

作用:告诉XAML编译由标签编译成生成的类具有的访问控制级别

使用要求:
1.此标签必须具有 x:Class Attribute
2.x:ClassModifier的值必须与x:Class的值所指代的类型的访问控制级别一致
3.x:ClassModifier的值随后台代码的编译语言不同而不同

x:Name

XAML是一种声明式的语言,XAML标签声明的是对象,一个XAML标签对应一个对象,单XAML只负责声明对象,不负责为对象声明引用变量,x:Name就是用来为标签对象声明引用变量名的。

作用:
1.告诉XAML编译器,当一个标签带有x:Name的时候,除了为这个标签生成对应实例,还需要为这个实例创建一个引用变量,变量名就是 x:Name 的值。
2.将 XAML 标签所对应对象的 Name 属性也设置为 x:Name,并将这个值注册到UI树上,方便查找。
使用 Name 还是 x:Name:
1.Name属性定义在FrameworkElement类中,是WPF控件的基类,所有WPF控件都具有Name这个属性。
2.当一个元素具有 Name 属性时,使用 Name 和 x:Name 效果是相同的。
3.这两个元素是不能同时使用的,否则编译不通过。
4.对于没有 Name 属性的元素,为了创建变量能够在 C# 代码中访问,只能使用 x:Name。
5.x:Name的功能包含了 Name属性的功能,可以全部使用 x:Name 来保持一致性和可读性。

x:FileModifier

x:ClassModifier是设置根节点,即类的访问级别,x:FileModifier是用来设置类中每个变量的访问级别的,如:Button控件对应类的访问级别。没有设置的全部都是默认的internal级别。

使用 x:FileModifier 前提是已经包含了 x:Name或者Name属性,否则不能使用。

x:Key

在XAML中,可以将需要多次使用的内容提取到资源字典中,需要使用的时候使用 key 来找到它。

x:Key 的作用就是为资源内容添加用于检索的索引。

x:Shared

x:Key 配合使用,当 x:Shared 为 true 的时候,那么每次检索到这个对象的时候,得到都是同一个对象,为 false的时候就是这个对象的一个副本。

3.标记扩展

标记扩展(Markup Extension)实际上就是MarkupExtension类的直接或者间接派生类。

x:Type

x:Type应该是一个数据类型的名称。一般情况下,使用的是数据类型的实例或者是实例的引用,但有时候也会用到数据类型本身。

x:Null

显示的为一个属性赋值一个空值。

x:Array

作用:通过他的Items属性向使用者暴露一个类型已知的 ArrayList 实例,ArrayList 内成员类型由 x:Array 的Type来指明。

<Grid>
	<ListBox>
    	<ListBox.ItemsSource>
        	<x:Array Type="sys:String">
                <sys:String>1</sys:String>
                <sys:String>2</sys:String>
                <sys:String>3</sys:String>
            </x:Array>
        </ListBox.ItemsSource>
    </ListBox>
</Grid>

x:Satatic

作用:在XAML文档中使用数据类型的 static成员。x:Satatic访问的 static成员一定是数据类型的属性或字段。

4.XAML指令元素

x:Code

作用:可以包含一些文本放置在后置代码的C#代码。一般不用。

x:XData

专用标签。

WPF将包含数据的对象称为数据源,用于把数据源中的数据提供给数据使用者的对象被称为数据提供者(Data Procider)。WPF中包含许多数据提供者,其中一个类是XmlDataProvider,是专门用于提供 XML化的数据。

<XmlDataProvider x:Key="data" XPath="/xml/mybook">
   <x:XData>
       <Book xmlns="">
             <Historys>
                  <History name="1" />
                  <History name="3" />
                  <History name="2" />
              </Historys>
              <Maths>
                  <Math name="111" />
                  <Math name="112" />
                  <Math name="113" />
              </Maths>
       </Book>
   </x:XData>
</XmlDataProvider>

WPF学习目录

标签:Name,Attribute,XAML,使用,介绍,名称,标签,属性
From: https://www.cnblogs.com/bleds/p/17958174

相关文章

  • 五大车载操作(VOS)系统的简单介绍对比
    车载操作系统(AutomoTIveOperaTIngSystem,简称AOS)是管理和控制车载硬件与车载软件资源的程序系统,是直接运行在AB上的最基本的系统软件,任何上层软件,HMI,数据连接都必须在操作系统的支持下才能运行。车载操作系统是用户和车载硬件的接口,同时也是车载硬件和上层软件的接口。车机......
  • [TypeScript]介绍及安装
    TypeScript是JavaScript的超集,扩展了JavaScript的语法。因此现有的JavaScript代码可与TypeScript一起工作无需任何修改,TypeScript通过类型注解提供编译时的静态类型检查。TypeScript可处理已有的JavaScript代码,并只对其中的TypeScript代码进行编译。 TypeScrip......
  • Flutter组件GridView使用介绍
    介绍GridView是Flutter中用于创建网格布局的滚动小部件。它可以创建多列布局,并且每个网格单元可以包含一个小部件。GridView提供了几种构造函数来创建不同类型的网格布局:GridView:最通用的构造函数,完全自定义网格布局。GridView.builder:按需构建网格项,适用于具有大量(或无限)网格......
  • Gorm 入门介绍与基本使用
    Gorm入门介绍与基本使用目录Gorm入门介绍与基本使用一、ORM简介1.1什么是ORM1.2使用ORM的好处1.2.1避免直接操作SQL语句1.2.2提高代码的可维护性1.2.3跨数据库兼容性1.3使用ORM的缺点1.3.1学习成本1.3.2性能开销1.4ORM解析过程1.4.1模型定义1.4.2数据验证1.4.3映射......
  • 【OpenVINO】 使用 OpenVINO CSharp API 部署 PaddleOCR 项目介绍
    前言: 在之前的项目中,我们已经使用OpenVINOTMCSharpAPI部署PaddleOCR全系列模型,但随着PaddleOCRv4版本发布以及OpenVINOCSharpAPI版本迭代,上一版本的项目已经不再适用。因此在推出的最新项目中,已经完成了对PaddleOCRv4的匹配,并且采用了最新版本的OpenVINOTMCSha......
  • Thread的方法介绍sleep、join、yield、wait、notify、notifyAll
    本文转载自:https://zhuanlan.zhihu.com/p/665014094 一、sleep方法(线程锁)线程释放CPU进入休眠,但不会释放锁(synchronized),释放CPU,不释放锁这里面有个比较经典的用法,代码中循环太快,导致年轻代的GC频繁或者GC时间久,可以通过Thread.sleep(0)释放CPU,让GC线程去执行回收经典用法:线......
  • test-01-java 单元测试框架 junit 入门介绍
    拓展阅读junit5系列基于junit5实现junitperf源码分析Autogeneratemockdataforjavatest.(便于Java测试自动生成对象信息)Junitperformancerelyonjunit5andjdk8+.(java性能测试框架。性能测试。压测。测试报告生成。)JUnitJUnit是一个用于编写可重复测试......
  • test-02-java 单元测试框架 junit5 入门介绍
    拓展阅读junit5系列基于junit5实现junitperf源码分析Autogeneratemockdataforjavatest.(便于Java测试自动生成对象信息)Junitperformancerelyonjunit5andjdk8+.(java性能测试框架。性能测试。压测。测试报告生成。)junit5的入门例子maven引入<depend......
  • flutter MaterialApp介绍
    MaterialApp 是Flutter中常用的一个widget,它是构建基于 MaterialDesign 风格应用的根组件,主要负责各种全局状态的管理以及定义应用程序的主题样式等。voidmain(){runApp(MaterialApp(title:"flutterAPP___test",theme:ThemeData(primarySw......
  • IP防水等级划分及测试方法介绍
    在工业生产中,特别是可在户外使用的电子电器产品,对设备都会有不同等级的防尘防水要求。自动化仪表设备的外壳防护等级(IP代码/防尘防水),是保证设备正常运行、保证产品安全可靠性防护的一项重要指标。那么,在选择与使用仪表产品时,就要特别关注一下仪器仪表的防护等级,这对于正确**品选型,......