命名空间的作用
XAML 命名空间的作用主要分为两种:
- 避免命名冲突。
- 使得标记元素与对应类型、属性映射。
第一点比较容易理解,就不多做解释;关于第二点,前面提到过,WPF 可以将 XAML 中声明的元素、属性映射到 .NET 中对应的类与属性,而之间的映射关系,就在对应的命名空间中。
XAML 命名空间与 XML 命名空间遵守相同的语法规则,即:xmlns[:namespace-prefix]="namespaceURI"。
默认命名空间
当创建一个 WPF 项目时,基本上所有的 XAML 文件都会包含以下命名空间:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
第一个命名空间包含整个 WPF 的框架,它是一个默认的命名空间,通俗点说就是没有前缀的命名空间。
<Window x:Class="WpfApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button /
</Grid>
</Window>
当我们使用 Window、Grid、Button 等时,看似是没有用到命名空间,其实是使用了默认的命名空间,即:xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
当然,默认命名空间并不是必须的,我们可以为其添加一个前缀,将其改为:xmlns:demo="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
可以发现,如果只是简单的添加这个前缀的话,是