如何在 WPF 中的 Xaml 文件中添加注释?
Posted
技术标签:
【中文标题】如何在 WPF 中的 Xaml 文件中添加注释?【英文标题】:How to add comments into a Xaml file in WPF? 【发布时间】:2011-12-16 19:48:55 【问题描述】:我使用了我在网上找到的这种语法,但它会引发错误:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
<!-- Cool comment -->
xmlns:System="clr-namespace:System;assembly=mscorlib"
'名称不能以'
【问题讨论】:
【参考方案1】:我假设那些 XAML 命名空间声明位于控件的父标记中?您不能将 cmets 放在另一个标签内。除此之外,您使用的语法是正确的。
<UserControl xmlns="...">
<!-- Here's a valid comment. Notice it's outside the <UserControl> tag's braces -->
[..snip..]
</UserControl>
【讨论】:
谢谢,我可以把它放在哪里?我需要将它们放在显示我对代码添加的某些地方。 根据我的示例,您需要将它们放在您已更改内容的标签旁边。您将无法从字面上将它们放在您在标签内添加的属性旁边。这是自动解析 XAML 并根据您的 cmets 执行某些操作所必需的,还是只是为了让其他人看到您所做的更改? 你把它们放在 XML 标签的外面。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 设计器时,我没有想到这个。工作正常。 这仅在您位于标签定义之外时有效。 "Edit.CommentSelection
和 Edit.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>
【讨论】:
以上是关于如何在 WPF 中的 Xaml 文件中添加注释?的主要内容,如果未能解决你的问题,请参考以下文章