为什么xaml中有两种引用.
一个看起来像这样:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
但是我看起来像这样:
xmlns:WPFToolKit="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
为什么我不能这样做:
xmlns:local="http://myschema.mydomain.com/MyControlNamespace
感谢ixlettervariables的答案.下面是详细的解释在这里
第二个实例基本上是对程序集中的命名空间的未映射但显式的引用.第一个实例是对项目引用的某个程序集中的命名空间的映射引用.MSDN上的XAML命名空间和命名空间映射更详细地解释了这一点:
WPF定义了XAML处理器使用的CLR属性,以便将多个CLR命名空间映射到单个XML命名空间.此属性XmlnsDefinitionAttribute放置在生成程序集的源代码中的程序集级别.WPF程序集源代码使用此属性将各种常见名称空间(如System.Windows和System.Windows.Controls)映射到http://schemas.microsoft.com/winfx/2006/xaml/presentation名称空间.
因此,通过在程序集中添加以下内容,您可以这样做:
[assembly:XmlnsDefinition("http://myschema.mydomain.com/MyControlNamespace", "My.Control.Namespace")]