【问题标题】:How to add comments into a Xaml file in WPF?如何在 WPF 中的 Xaml 文件中添加注释?
【发布时间】:2023-03-28 11:35:01
【问题描述】:

我使用了我在网上找到的这种语法,但它会引发错误:

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
<!-- Cool comment -->
xmlns:System="clr-namespace:System;assembly=mscorlib"

'名称不能以'

【问题讨论】:

    标签: c# .net wpf xaml comments


    【解决方案1】:

    我假设那些 XAML 命名空间声明位于控件的父标记中?您不能将 cmets 放在另一个标签内。除此之外,您使用的语法是正确的。

    <UserControl xmlns="...">
        <!-- Here's a valid comment. Notice it's outside the <UserControl> tag's braces -->
        [..snip..]
    </UserControl>
    

    【讨论】:

    • 谢谢,我可以把它放在哪里?我需要将它们放在显示我对代码添加的某些地方。
    • 根据我的示例,您需要将它们放在您已更改内容的标签旁边。您将无法从字面上将它们放在您在标签内添加的属性旁边。这是自动解析 XAML 并根据您的 cmets 执行某些操作所必需的,还是只是为了让其他人看到您所做的更改?
    • 你把它们放在 XML 标签的外面。 /> 。如果你回到你的代码,你会看到你让他们收到错误消息的地方是在一个多行标签内。
    • 虽然这个答案最适合我,但 User500099 给出了 Joan 问题的准确答案。
    【解决方案2】:

    Laurent Bugnion 找到了一个不错的解决方案,它看起来像这样:

    <UserControl xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:comment="Tag to add comments"
                 mc:Ignorable="d comment" d:DesignHeight="300" d:DesignWidth="300">
        <Grid>
            <Button Width="100"
                    comment:Width="example comment on Width, will be ignored......">
            </Button>
        </Grid>
    </UserControl>
    

    这是链接: http://blog.galasoft.ch/posts/2010/02/quick-tip-commenting-out-properties-in-xaml/

    链接上的评论者为忽略前缀提供了额外的字符来代替突出显示:

    mc:Ignorable=”ØignoreØ”
    

    【讨论】:

    • 由于 XAML 是一种特殊化 XML(它是 SGML 的一种特殊化),您会认为 -- SGML comment -- 样式适用于内部标记 cmets。但是不,99.44% 的 XAML 解析器不接受 SGML in-tag cmets。
    • 这是最有用的答案!
    • 我认为@Joan Venge 的问题是如何“暂时删除代码”而不是“为人类读者添加信息”。
    【解决方案3】:

    您不能在 xml 标签内插入 cmets。

    不好

    <Window xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    <!-- Cool comment -->
    xmlns:System="clr-namespace:System;assembly=mscorlib">
    

    <Window xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:System="clr-namespace:System;assembly=mscorlib">
    <!-- Cool comment -->
    

    【讨论】:

    • @kenny:那条评论太陈词滥调了... 将任何编程语言都基于 XML 有点糟糕,但至少 XAML 有很好的意义尝试使所有内容都尽可能地具有声明性,这适合 XML 模型。
    • @kenny a: xaml 不是一种编程语言 - 它是一种标记语言和/或序列化格式,具体取决于您如何看待它...和 ​​b :该限制不是 xaml 之一 - 它是 xml 之一。
    • 我了解 XAML 的局限性在于它基于 XML。因此,XML 是一种二流编程/标记语言。这样更好吗?
    • >XML 是一种编程语言...什么?
    • 有一天,世界将停止将 HTML/XML/等称为编程语言。今天不行。
    【解决方案4】:

    只是一个提示:

    在 Visual Studio 中对文本进行注释,可以突出显示要注释的文本,然后使用 Ctrl + K 后跟 Ctrl + C。要取消注释,您可以使用 Ctrl + K 后跟 Ctrl + U

    【讨论】:

    • 像往常一样编程时一直使用这个,但是当我进入 XAML 设计器时,我没有想到这个。工作正常。
    • 这仅在您位于标签定义之外时有效。 "content" 有效," > content" 无效。我试图在多行上注释掉一些属性,它给出了错误。
    • 为了清楚起见,在 Visual Studio 201 中,这指的是 Edit.CommentSelectionEdit.UncommentSelection 命令。
    【解决方案5】:

    您不能将 cmets 放在 UWP XAML 标记中。你的语法是对的。

    待办事项:

    <xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:System="clr-namespace:System;assembly=mscorlib"/>
    <!-- Cool comment -->
    

    不要做:

    <xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        <!-- Cool comment -->
    xmlns:System="clr-namespace:System;assembly=mscorlib"/>
    

    【讨论】:

      【解决方案6】:

      对于任何学习这些东西的人来说,cmets 更为重要,因此借鉴 Xak Tacit 的想法
      (来自 User500099 的 link)对于 Single Property cmets,将其添加到 XAML 代码块的顶部:

      <!--Comments Allowed With Markup Compatibility (mc) In XAML!
          xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
          xmlns:ØignoreØ="http://www.galasoft.ch/ignore"
          mc:Ignorable="ØignoreØ"
          Usage in property:
      ØignoreØ:AttributeToIgnore="Text Of AttributeToIgnore"-->
      

      然后在代码块中

      <Application FooApp:Class="Foo.App"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:ØignoreØ="http://www.galasoft.ch/ignore"
      mc:Ignorable="ØignoreØ"
      ...
      
      AttributeNotToIgnore="TextNotToIgnore"
      ...
      
      ...
      ØignoreØ:IgnoreThisAttribute="IgnoreThatText"
      ...   
      >
      </Application>
      

      【讨论】:

        猜你喜欢
        • 2013-04-02
        • 2015-09-08
        • 2015-01-02
        • 1970-01-01
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 2021-07-27
        • 2015-08-23
        相关资源
        最近更新 更多