Clr 命名空间映射到默认 xaml 命名空间

本文关键字:命名空间 xaml 默认 映射 Clr | 更新日期: 2023-09-27 18:34:03

我有点厌倦了在每个 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"中不存在。

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

Clr 命名空间映射到默认 xaml 命名空间

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

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