在msdn网站上有一篇大文章:XAML overview
并且有一部分描述了什么: x:Key, x:Class, x:Name
等但问题是所有关于它的说法都非常抽象而没有例子 .
我知道当我在xaml中创建一个元素并设置: x:Name = "abc"
然后在cs文件中我可以通过 abc.fieldORmethod()
访问这个对象,但其余的是什么 . Could anybody provide explanation with examples for that statements below?
-
x:Key :为
ResourceDictionary
(或其他框架中的类似字典概念)中的每个资源设置唯一键 . x:密钥可能会占到您在典型WPF应用程序标记中看到的x:用法的90% .x:Class
:指定为XAML页面提供代码隐藏的类的CLR名称空间和类名 . 你必须有这样一个类来支持WPF编程模型的代码隐藏,因此你几乎总能看到x:mapped,即使没有资源 . -
x:Name :指定处理对象元素后存在于运行时代码中的实例的运行时对象名称 . 通常,您将经常为x:Name使用WPF定义的等效属性 . 这些属性专门映射到CLR支持属性,因此更方便应用程序编程,您经常使用运行时代码从初始化的XAML中查找命名元素 . 最常见的此类 property 是
FrameworkElement.Name
. 当特定类型不支持等效的WPF框架级Name属性时,您仍可以使用x:Name . 这在某些动画场景中会发生 . -
x:Static :启用一个返回静态值的引用,否则该值不是XAML兼容的属性 .
-
x:Type :根据类型名称构造一个Type引用 . 这用于指定采用Type的属性,例如
Style.TargetType
,尽管该属性经常具有本机字符串到类型的转换,使得x:Type标记扩展使用是可选的 .
1 回答
x:Key 用于您想要定义一些可以在您的xaml中重用的资源 . 它相当于普通字典的Key .
x:Static 用于捐赠一些静态数据 . 假设您要声明使用SystemColors枚举下定义的静态颜色的画笔 .
x:Type 相当于C#中的
Type
类 . 它表示类的类型 .x:Name 用于提供控制名称,以便可以使用该名称从后面的代码访问它,或者可以使用ElementName在XAML中绑定 .