Clr namespace mapping to default xaml namespaces

.net, c#, wpf, xaml

Solution

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.

Problem

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).

Original source