为什么XAML命名空间URI及其用途是什么?

时间:2013-03-07 12:19:29

标签: wpf xaml xml-namespaces wpf-4.0

我对XML命名空间持怀疑态度。我不知道为什么我们在所有XAML应用程序中都需要这些命名空间。

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

我理解命名空间的概念,如System.Text,System.LINQ等。我们在我们的类中使用它,因为我们有类库,它们位于同一台计算机上。

问题:

  1. 它代表一些URI。所以WPF是独立的应用程序。如果应用程序的用户没有连接到Internet,那么它的重要性是什么?首先,为什么我们需要这个?

  2. 第一行和第二行有什么区别? xmlns:x代表什么?

  3. 此外,我在尝试访问该URI时看到此错误

      

    处理您的请求时出错

    这是什么意思?

3 个答案:

答案 0 :(得分:3)

XAML命名空间就像C ++或C#/ VB.NET中的命名空间一样,它的目的是对类和其他项进行逻辑分组。
在WPF / XAML中,您有一个名称空间xmlns=http://...,它是WPF默认为您提供的控件的名称空间。 xmlns:x是一个命名空间,用于提供一些特殊值,例如x:Null来表示null - 值。
您也可以定义自己的控件并将它们命名为TextBox,但是您应该为这些控件创建一个自己的命名空间,以免干扰全局命名空间。
命名空间定义中提到的URL与实际的Internet连接或实际的现有URL无关,这只是可以正确区分命名空间。 关于这个主题的MSDN有一篇很好的文章。

答案 1 :(得分:1)

这就是这些命名空间的命名方式。就这样。你不应该把它们视为uri。 至于xmlns vs xmlns:x - 第一个是默认命名空间,它包含wpf控件,第二个是命名空间whcih包含一些额外的声明(x:Type,x:Name等)。

答案 2 :(得分:0)

我知道这是一个旧线程,但我认为答案中提供的信息并不完全正确。您看到的URL不是命名空间,而是分组为一个的命名空间集合。以下是.net中的一些名称空间,它们由默认名称空间(url)

映射

System.Windows,System.Windows.Automation,System.Windows.Controls,System.Windows.Controls.Primitives,System.Windows.Data,System.Windows.Documents