将Clr命名空间映射到默认的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")]
但这似乎并不奏效。 我仍然收到一个编译错误,如:
标记'MyCustomControl'不存在于XML名称空间'http://schemas.microsoft.com/winfx/2006/xaml/presentation'中。
注意:我的控件在同一个程序集中(我有一个程序集)。
不幸的是,如果控件是在同一个程序XmlnsDefinition
定义的,则不能使用映射到由XmlnsDefinition
定义的Xaml名称空间的控件。 不同的程序集工作正常。 你必须为此使用clr-namespace
定义。
为什么要将控件添加到Xaml默认名称空间? 不要这样做。 这就像为您的类使用System
命名空间一样,因为您不想为其命名空间添加using
指令。