x:意思是xaml

Nig*_*ker 51 wpf xaml

我看到很多陈述

<TextBox x:Name="txtInput" />

或者喜欢

<BooleanToVisibilityConverter x:Key="boolToVis" />
Run Code Online (Sandbox Code Playgroud)

为什么x:需要它以及它给了我什么.

<DockPanel.Resources>
  <c:MyData x:Key="myDataSource"/>
</DockPanel.Resources>
Run Code Online (Sandbox Code Playgroud)

在这里我们也有 c:

感谢帮助

Dab*_*rnl 69

它只不过是XML的不同命名空间的快捷方式.你可以随意选择它们.如果你查看XAML中的上面一行,你会发现以下行:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Run Code Online (Sandbox Code Playgroud)

例如,将x' wpf' 更改为' ' ,您将看到需要将x:代码中的所有'前缀更改为' wpf:'以使其编译.

' c:'前缀引用您自己的代码.假设您有一个编译为MyLib.dll的类库.该库包含一个名为MyData的类.为了能够引用MyData类,您需要以下内容:

xmlns:c="clr-namespace:MyClasses;assembly=MyLib"
Run Code Online (Sandbox Code Playgroud)

在您的XAML标头中.

然后,您可以在XAML中引用MyData类c:MyData.但你可以完全自由地改变' c'到' myfabulousclasses'或你想要的任何其他东西.

这个目的?区分具有相同名称但属于不同dll的类或成员.


Kis*_*mar 16

x:前缀

在前面的根元素示例中,前缀x:用于映射XAML命名空间http://schemas.microsoft.com/winfx/2006/xaml,它是支持XAML语言结构的专用XAML命名空间.此x:前缀用于在项目模板中映射此XAML命名空间.XAML语言的XAML命名空间包含几个在XAML中经常使用的编程结构.以下是您将使用的最常见的x:前缀编程构造的列表:

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的属性,例如Style.TargetType,尽管该属性经常具有本机字符串到类型的转换,使得x:Type标记扩展使用是可选的.

http://msdn.microsoft.com/en-us/library/ms752059.aspx http://msdn.microsoft.com/en-us/library/ms753327.aspx


Dar*_*rov 7

它是命名空间的一部分.在您的示例中,c: prefix用于指示MyData标记属于此命名空间.您可以查看MSDN 上的以下文章,其中解释了x: prefixXAML中的内容.

  • 需要说明的是:XAML基于XML,而`x:`前缀是标题中定义的XML Namespace的前缀. (2认同)