x:在xaml中的含义

我看到很多声明

<TextBox x:Name="txtInput" />

或者像

 <BooleanToVisibilityConverter x:Key="boolToVis" /> 

为什么x:是需要的,它给了我什么。

 <DockPanel.Resources> <c:MyData x:Key="myDataSource"/> </DockPanel.Resources> 

在这里,我们也有c:

感谢帮助

它只不过是XML的不同命名空间的快捷方式。 你可以select他们,只要你喜欢。 如果你看看你的XAML的上面的行,你会发现这行:

 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 

例如,将“ x ”更改为“ wpf ”,您将看到需要将代码中的所有“ x: ”前缀更改为“ wpf: ”才能进行编译。

' c: '前缀引用您自己的代码。 假设你有一个编译为MyLib.dll的类库。 这个库包含一个名为MyData的类。 为了能够引用MyData类,你需要像这样的东西:

 xmlns:c="clr-namespace:MyClasses;assembly=MyLib" 

在你的XAML头。

然后你可以使用c:MyData引用你的XAML中的MyData类。 但是你完全可以自由地把' c ' myfabulousclasses ' myfabulousclasses '或者其他你喜欢的东西。

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

x:前缀

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

x:Key:为ResourceDictionary中的每个资源(或其他框架中的类似字典概念)设置唯一的键。 x:Key可能会占用您在典型的WPF应用程序标记中看到的x:用法的90%。

x:Class:指定为XAML页面提供代码隐藏的类的CLR名称空间和类名称。 您必须拥有这样的类才能支持WPF编程模型的代码隐藏function,因此即使没有资源,您也几乎总能看到x:映射。

x:Name:指定处理对象元素后,运行时代码中存在的实例的运行时对象名称。 一般来说,您将经常使用x:Name的WPF定义的等价属性。 这些属性专门映射到CLR支持属性,因此对于应用程序编程更为方便,在这种情况下,您经常使用运行时代码从已初始化的XAML中查找已命名的元素。 最常见的这种属性是FrameworkElement.Name。 当特定types中不支持等效的WPF框架级Name属性时,您仍然可以使用x:Name。 这发生在某些animation场景。

x:Static:启用一个引用,该引用返回一个不是XAML兼容属性的静态值。

x:types:根据types名称构造一个types引用。 这用于指定采用Type的属性,例如Style.TargetType,尽pipe该属性通常具有本地string到types的转换,使得x:Type标记扩展的用法是可选的。

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

它是名称空间的一部分。 在你的例子中, c: prefix用于表示MyData标签属于这个名字空间。 你可以看看MSDN上的以下文章 ,它解释了XAML中的x: prefix