4

我对 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 是独立的应用程序。如果应用程序的用户没有连接到互联网,它的意义是什么?首先我们为什么需要这个?

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

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

    处理您的请求时发生错误

    这是什么意思?

4

3 回答 3

3

命名空间定义中提到的 URL 与实际的互联网连接或真实存在的 URL 无关;这只是使用的约定,因此可以正确区分名称空间。

XAML 命名空间就像 C++ 或 C#/VB.NET 中的命名空间一样,它用于对类和其他项进行逻辑分组。

在 WPF/XAML 中,您有一个命名空间xmlns=http://...,它是 WPF 默认为您提供的控件的命名空间。xmlns:x是一个命名空间,提供一些特殊的值,比如x:Null表示一个null-value。
您也可以定义自己的控件并TextBox为其命名,但您应该为这些控件创建自己的命名空间,以免干扰全局命名空间。

MSDN上有一篇关于这个主题的好文章。

于 2013-03-07T12:26:08.580 回答
2

这是命名这些名称空间的方式。就这样。您不应该将它们视为 uri。至于 xmlns 与 xmlns:x - 第一个是默认命名空间,其中包含 wpf 控件,第二个是命名空间,其中包含一些附加声明(x:Type、x:Name 等)。

于 2013-03-07T12:29:51.203 回答
0

我认为接受的答案中提供的信息并不完全正确。您看到的 url 不是命名空间,而是组合成一个命名空间的集合。以下是 .net 中的一些命名空间,这些命名空间由默认命名空间 (url) 映射

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

于 2013-05-11T10:58:20.187 回答