Подтвердить что ты не робот

Есть ли способ прокомментировать XAML, содержащий комментарии?

Я новичок в WPF и использую XAML. Я очень расстраиваюсь, что я не могу выбрать фрагмент XAML и прокомментировать его в Visual Studio 2010, используя кнопку комментария на панели инструментов, если выделенный раздел уже содержит некоторые комментарии.

Другие языки позволяют вставлять комментарии внутри комментариев без каких-либо проблем. Есть ли способ прокомментировать комментарий в XAML с помощью Visual Studio 2010?

4b9b3361

Ответ 1

Нет, в XAML нет вложенных комментариев.

Вы можете использовать атрибут mc: Ignorable в своем корневом элементе, и любой атрибут или элемент с префиксом этого значения будут игнорироваться, например:

<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 = "di"

Ответ 2

Очень жаль, что функция комментариев не умнее этого, когда дело доходит до блока, который уже содержит некоторые прокомментированные строки в XML.

Довольно безболезненным обходным решением этой проблемы может быть использование регулярных выражений:

  • Выберите блок кода XAML, который вы хотите прокомментировать.
  • Нажмите кнопку комментария на панели инструментов Visual Studio
  • Сохраняя выбранный вами блок текста:
    • Откройте диалоговое окно "Найти/заменить" (CTRL + SHIFT + H)
    • В разделе "Параметры поиска" выберите "Использовать регулярные выражение ".
    • Убедитесь, что в поле со списком "Входящие": "Выбор".
    • В поле "Найти" введите: \<\!\-\-(.*)\-\-\>
    • В поле "Заменить" введите: --><!--$1--><!--
    • Нажмите кнопку "заменить все"

Это приведет к завершению любых прокомментированных строк внутри вашего блока с закрывающим тегом комментария в начале и тегом открытия комментария в конце, гарантируя, что блок текста, предшествующий этому комментарию, является допустимым, а следующий за ним тоже.

Чтобы удалить комментарии и вернуться к исходному блоку XAML, сначала используйте регулярное выражение, но с обратной логикой:

  • Найти поле: \-\-\>\<!\-\-(.*)\-\-\>\<\!\-\-
  • Заменить поле: <!--$1-->

Затем, сохраняя выбранный блок XAML, нажмите кнопку Uncomment из Visual Studio.

ПРИМЕЧАНИЕ.. В зависимости от используемой версии Visual Studio синтаксис регулярного выражения может отличаться. Я использую VS 2012. Предыдущие версии будут использовать фигурные скобки '{}', чтобы изолировать выражение и обратную косую черту '\', чтобы использовать его обратно в поле replace. Теперь это скобка '()' и знак доллара '$' соответственно.

Ответ 3

Выберите блок комментариев Хит cntrl-K, control-c (тот же ярлык, что и на стороне С# для комментирования блока кода). Дизайнер сдвинет маркеры комментариев, чтобы прокомментировать весь блок.

cntrol-k, cntrol-u (Kode Uncomment) снова переключит вещи на повторный запуск кода XAML. Это удаляет все метки комментариев, поэтому вам придется повторно прокомментировать исходные комментарии.

его не идеально, но они легко сочетаются, вероятно, вы уже знаете.

Ответ 4

В выражении blend отсутствует кнопка комментирования/раскомментации, если вы хотите попытаться прокомментировать блок кода, вы можете ввести следующие символы в начале и конце блока кода вручную

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

См. пример скриншота ниже

See a sample screenshot below