有没有办法注释掉包含注释的XAML?

时间:2010-12-17 21:27:34

标签: wpf visual-studio-2010 xaml

我是WPF并且使用XAML的新手。如果突出显示的部分已经包含一些注释,我无法选择一大块XAML并使用工具栏中的注释按钮在Visual Studio 2010中对其进行注释,我感到非常沮丧。

其他语言允许您在注释中嵌套注释,没有任何问题。有没有办法使用Visual Studio 2010在XAML中注释掉评论?

4 个答案:

答案 0 :(得分:23)

不,没有办法在XAML中嵌套注释。

您可以在根元素上使用mc:Ignorable属性,并且将忽略以该值为前缀的任何属性或元素.Eg:

<UserControl ...
   mc:Ignorable="i">

   <!-- Ignore Text attribute -->
   <TextBlock i:Text="Hello" />

   <!-- Ignore entire button -->
   <i:Button>
   </i:Button>

</UserControl>

请注意,blend将mc:Ignorable属性值设置为“d”,因此您需要使用例如mc:Ignorable =“d i”

我不确定你为什么要这么多评论XAML内容?

答案 1 :(得分:5)

非常遗憾的是,当涉及到已经包含XML中一些注释掉的行的块时,注释功能并不比这更聪明。

解决此问题的一个相当轻松的解决方法是使用正则表达式:

  • 选择要注释掉的XAML代码块。
  • 单击Visual Studio工具栏中的注释按钮
  • 保留已注释的文本块:
    • 打开“查找/替换”对话框(CTRL + SHIFT + H)
    • 在“查找选项”中,选择“使用常规” 表达“复选框。
    • 确保设置了“Look In:”组合框 “选择”。
    • 在“查找”字段中,输入:\<\!\-\-(.*)\-\-\>
    • 在“替换”字段中,输入:--><!--$1--><!--
    • 点击“全部替换”按钮

这将使用开头的结束注释标记和结尾处的开始注释标记来包装块中任何注释掉的行,确保此注释前面的文本块有效,并且后面的文本块也是有效的。

要删除注释并返回到原始的XAML块,请先使用正则表达式,但使用反向逻辑:

  • 查找字段:\-\-\>\<!\-\-(.*)\-\-\>\<\!\-\-
  • 替换字段:<!--$1-->

然后,选中XAML块,单击Visual Studio中的“取消注释”按钮。

注意:根据您使用的Visual Studio版本,正则表达式的语法可能会有所不同。我正在使用VS 2012.以前的版本将使用花括号'{}'来隔离表达式,使用反斜杠'\'在替换字段中使用它。现在,它分别是括号'()'和美元符号'$'。

答案 2 :(得分:1)

Select the comment block Hit cntrl-K, control-c (The same shortcut as on the C# side for commenting out a block of code). The designer will shift your comment markers to comment the entire block.

cntrol-k, cntrol-u (Kode Uncomment) will unshift things back to making it live XAML code again. This removes all the comment markings, so you make have to re-comment your original comments again.

its not perfect, but they are easy shortcuts you probably already know.

答案 3 :(得分:0)

表达式混合中没有注释/取消注释按钮,如果要尝试注释代码块,可以手动在代码块的开头和结尾键入包含以下符号

<!-- your code comes here..
Next Line--> 

请参阅下面的示例截图

See a sample screenshot below