如何为XAML创建自己的(非CLR!)XML命名空间?

时间:2013-09-27 10:16:41

标签: xml wpf xaml

注意Telerik命名空间。它不像你期望的那样clr-namespace:Telerik;assembly=Telerik。他们是怎么做到的?

<UserControl x:Class="Sandbox.MyUserControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
    </Grid>
</UserControl>

1 个答案:

答案 0 :(得分:3)

您可以使用XmlnsDefinition属性将一个或多个CLR命名空间映射到URI;例如:

[assembly: XmlnsDefinition("http://www.yourdomain.com/schema", "MyProject.Foo")]
[assembly: XmlnsDefinition("http://www.yourdomain.com/schema", "MyProject.Bar")]
[assembly: XmlnsDefinition("http://www.yourdomain.com/schema", "MyProject.Baz")]

您还可以使用XmlnsPrefix属性关联命名空间的默认前缀:

[assembly: XmlnsPrefix("http://www.yourdomain.com/schema/", "foo")]

请注意,此属性仅用作编辑工具的建议。