1

我正在开发一个自定义 WPF 控件库,其中包括分布在适当命名空间中的控件转换器、触发器和行为。我知道如何定义 XmlnsDefinition 和 XmlnsPrefix 程序集信息并广泛使用它。Hwta 我想做的是为同一个程序集中的每个命名空间定义 XmlnsPrefix 所以 ForExample 如果有这样的声明

[assembly: XmlnsPrefix("http://schemas.taicodev.com/winfx/2010/xaml/presentation", "TaicoControl")]
[assembly: XmlnsDefinition("http://schemas.taicodev.com/winfx/2010/xaml/presentation", "CuratioCMS.Client.UI.Converters")]
[assembly: XmlnsDefinition("http://schemas.taicodev.com/winfx/2010/xaml/presentation", "CuratioCMS.Client.UI.Controls")]

我想离开 TaicoControl 但转换器自动使用 TaicoConverter 前缀

这是可能的吗?如何在没有在许多不同组件中划分组件的情况下实现这一点?

4

1 回答 1

2

如果您希望 2 个不同的 CLR 命名空间使用 2 个不同的 xmlns 前缀,那么您需要为每个 CLR 命名空间定义 xmlnsdefinition 以便它使用不同的 URI,然后为每个唯一的 URI 定义一个 xmlnsprefix。

[assembly: XmlnsPrefix("http://schemas.taicodev.com/winfx/2010/xaml/presentation", "TaicoControl")]
[assembly: XmlnsPrefix("http://schemas.taicodev.com/winfx/2010/xaml/presentation/converters", "TaicoConverters")]
[assembly: XmlnsDefinition("http://schemas.taicodev.com/winfx/2010/xaml/presentation/converters", "CuratioCMS.Client.UI.Converters")]
[assembly: XmlnsDefinition("http://schemas.taicodev.com/winfx/2010/xaml/presentation", "CuratioCMS.Client.UI.Controls")]
于 2012-10-18T12:34:38.090 回答