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

发布于 2024-09-09 07:50:07 字数 775 浏览 8 评论 0原文

我正在尝试从 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 命名空间名称而不是前缀?

I am trying to generate XAML from XElements.

<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>

However, I have problem with x:Type markup extension. It is unable to resolve the prefix p:, because I do not know how to force output XAML to map prefix p to namespace http://schemas.microsoft.com/winfx/2006/xaml/presentation.

Is there a way to control how prefixes of XML namespaces will be generated? Or is it possible to force x:Type markup extension to take XML namespace name instead of prefix?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少年亿悲伤 2024-09-16 07:50:07

我发现:

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

I've found that:

new XAttribute(XNamespace.Xmlns + "p", "http://schemas.microsoft.com/winfx/2006/xaml/presentation"); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文