Clr namespace mapping to default xaml namespaces

I'm a bit tired of having to declare an xmlns in every xaml file and having to use prefixes for my custom controls. Is it possible to map a clr namespace to "http://schemas.microsoft.com/winfx/2006/xaml/presentation"?

I tried the following in my AssemblyInfo.cs:

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

but this doesn't seem to work. I still get a compile error like:

The tag 'MyCustomControl' does not exist in XML namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'.

Note: My controls are within the same assembly (I have a single assembly).


  • Unfortunately, you cannot use controls mapped to a Xaml namespace defined by XmlnsDefinition , if the controls are defined in the same assembly. Different assemblies work fine though. You'll have to use the clr-namespace definition for this.

  • Why would you want to add your controls to the Xaml default namespace? Don't do this. It's like using the System namespace for your classes because you don't want to add using directives for their namespaces.

  • 链接地址: http://www.djcxy.com/p/34480.html

    上一篇: XAML新手。 x:和:x是什么意思?

    下一篇: 将Clr命名空间映射到默认的xaml命名空间