Clr名称空间映射到默认的xaml名称空间

时间:2012-05-11 11:01:52

标签: c# .net wpf xaml

我有点厌倦了在每个xaml文件中声明xmlns并且必须为我的自定义控件使用前缀。是否可以将clr名称空间映射到“http://schemas.microsoft.com/winfx/2006/xaml/presentation”?

我在AssemblyInfo.cs中尝试了以下内容:

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation","MyOwnNamespace")]

但这似乎不起作用。我仍然得到一个编译错误,如:

  

XML名称空间“http://schemas.microsoft.com/winfx/2006/xaml/presentation”中不存在“MyCustomControl”标记。

注意:我的控件在同一个程序集中(我有一个程序集)。

1 个答案:

答案 0 :(得分:9)

  1. 不幸的是,如果控件是在同一个程序集中定义的,则不能使用映射到XmlnsDefinition定义的Xaml命名空间的控件。不同的组件工作正常。您必须使用clr-namespace定义。

  2. 为什么要将控件添加到Xaml默认命名空间?不要这样做。这就像为您的类使用System命名空间一样,因为您不希望为其命名空间添加using指令。