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