如何控制XmlWriter生成的XML文档中名称空间的前缀 - 生成的XAML与x:Type标记扩展

时间:2010-07-14 20:57:27

标签: .net xml xaml xmlwriter xamlreader

我正在尝试从XElements生成XAML。

<Style xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
  <Style.BasedOn>
    <StaticResource> 
      <StaticResource.ResourceKey>
        <Type xmlns="http://schemas.microsoft.com/winfx/2006/xaml">
          <Type.TypeName>p:Window</Type.TypeName> 
        </Type>
      </StaticResource.ResourceKey>
    </StaticResource>
  </Style.BasedOn>
  ...
</Style>

但是,x:Type标记扩展存在问题。它无法解析前缀p:,因为我不知道如何强制输出XAML将前缀p映射到命名空间http://schemas.microsoft.com/winfx/2006/xaml/presentation

有没有办法控制如何生成XML命名空间的前缀?或者是否可以强制x:Type标记扩展来获取XML命名空间名称而不是前缀?

1 个答案:

答案 0 :(得分:1)

我发现:

new XAttribute(XNamespace.Xmlns + "p", "http://schemas.microsoft.com/winfx/2006/xaml/presentation");