x的含义:Key,x:Class x:在XAML中输入x:Static

Yod*_*oda 7 .net c# wpf xaml

在msdn网站上有一篇大文章:XAML概述

并且有一部分描述了什么是:x:Key, x:Class, x:Name等等,但问题在于所有关于它的说法都是抽象的,没有例子.

我知道当我在xaml中创建一个元素并设置:x:Name = "abc"然后在cs文件中我可以访问这个对象,abc.fieldORmethod()但其余的是什么.有人可以为下面的陈述提供解释吗?

  • x:Key:为ResourceDictionary (或其他框架中的类似字典概念)中的每个资源设置唯一键.x:密钥可能会占到您在典型WPF应用程序标记中看到的x:用法的90%.x:Class:指定为XAML页面提供代码隐藏的类的CLR名称空间和类名.你必须拥有这样一个类来支持WPF编程模型的代码隐藏,因此即使没有资源,你也几乎总能看到x:mapped.
  • x:Name:指定处理对象元素后在运行时代码中存在的实例的运行时对象名称.通常,您将经常为x:Name使用WPF定义的等效属性.这些属性专门映射到CLR支持属性,因此更方便应用程序编程,您经常使用运行时代码从初始化的XAML中查找命名元素.最常见的此类财产是 FrameworkElement.Name.当特定类型不支持等效的WPF框架级Name属性时,您仍可以使用x:Name.这在某些动画场景中会发生.
  • x:Static:启用一个返回静态值的引用,否则该值不是XAML兼容的属性.
  • x:Type:根据类型名称构造一个Type引用.这用于指定采用Type的属性,例如Style.TargetType,尽管该属性经常具有本机字符串到类型的转换,使得x:Type标记扩展使用是可选的.

Roh*_*ats 17

x:密钥用于您想要定义一些可以在您的xaml中重用的资源.它相当于普通字典的Key.

<Window.Resources>
   <Style x:Key="ButtonStyle"/>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

x:Static用于捐赠一些静态数据.假设您要声明使用SystemColors枚举下定义的静态颜色的画笔.

<SolidColorBrush Color="{x:Static SystemColors.ControlColor}" />
Run Code Online (Sandbox Code Playgroud)

x:Type类似于TypeC#中的类.它表示类的类型.

<Style TargetType="{x:Type Button}"/>
Run Code Online (Sandbox Code Playgroud)

x:Name用于提供控制名称,以便可以使用该名称从后面的代码访问它,或者可以使用ElementName在XAML中绑定.

<TextBlock x:Name="txt1" Text="Test"/>
<TextBlock x:Name="txt2" Text="{Binding Text,ElementName=txt}"/>
Run Code Online (Sandbox Code Playgroud)

  • 1.`x:Key`可用于将项目放入**任何**`IDictionary`,而不仅仅是`ResourceDictionary`.2.我会说`x:Type`类似于`typeof`而**则返回**`Type`.3.`x:Name`也可以用`x:Reference`引用(`Binding`特定于WPF). (7认同)