简体   繁体   中英

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

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM