2012-02-24 1 views
8

Всякий раз, когда я запускаю мое приложение Windows Phone пока страница XAML открыта, Visual Studio добавляет следующие моему XAML:Как: Прекратить Visual Studio XAML редактор из Добавление MC: Ignorable

mc:Ignorable="d" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
d:DesignHeight="768" 
d:DesignWidth="480" 

Как я могу остановить это от этого? Я знаю, что это не помешает мне сохранить его, но я не хочу этого в своем коде, если мне это не понадобится.

Благодаря

ответ

0

Я не мог найти вариант конфигурации или реестр, который останавливает Визуальный редактор студии XAML, добавив в mc:Ignorable к данной XAML страницы.

Возможные пути вы могли бы остановить Visual Studio, добавив его включают в себя:

  • Закрыв свой XAML страницу вручную перед запуском приложения
  • При закрытии XAML страницу автоматически перед запуском приложения путем расширения Visual Studio (ресурсы here) или с помощью макросов (макросы удаляются из Visual Studio 11 и далее)
  • Настройка редактора для редактирования XAML, чтобы просто использовать обычный текстовый редактор внутри редактора XAML. (ресурсы here и here)
  • Извлечение добавленного XAML с помощью вашего шага приложения или публикации после изменения файла XAML. Фрагмент неполного кода: here. Если вы используете прикладной подход, вам нужно будет отредактировать файл, а затем перезагрузить соответствующий элемент управления. Информация о событиях после сборки доступна в How to: Specify Build Events (C#) и Gotcha! Visual Studio Pre/Post-Build Events для использования командного файла.

Нужно ли это вам или нет, зависит от вашего варианта использования, независимо от того, нужна ли вам ширина и высота времени разработки, указанные дизайнеру Visual Studio, что является вашим решением. Для получения дополнительной информации см. mc:Ignorable Attribute для самого Атрибута и следующих Stackoverflow post за дополнительной информацией о d:DesignWidth и d:DesignHeight.

+0

Это много хаков и работают. Хотя я ненавижу, когда Visual Studio добавляет эту разметку в свой XAML, я не думаю, что это стоит того, чтобы пройти через все эти неприятности :) спасибо любым способом. – TheBlueSky

2

При создании любого предопределенного документа Visual Studio использует встроенные шаблоны по умолчанию.

Например, для Visual Studio 2010 пользовательский шаблон для WPF UserControl выглядит:

<UserControl x:Class="$rootnamespace$.$safeitemname$" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"> 
    <Grid> 

    </Grid> 
</UserControl> 

Файл расположен на моем компьютере: C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ItemTemplatesCache \ CSharp \ WPF \ 1033 \ WPFUserControl.zip \ UserControl1.xaml

Так как вы видите, что Microsoft Team решила включить это пространство имен по умолчанию. Я считаю, что вы можете найти такой шаблон для проекта Windows Phone, просто посмотрите в установочной папке Visual Studio и, очевидно, вы всегда можете создавать и использовать собственные шаблоны для любого документа.

И то, что я нашел наиболее аккуратным - вам не нужно перезапускать Visual Studio, чтобы получать обновления шаблонов шаблонов. Я просто удалил mc:Ignorable из шаблона по умолчанию и попытался создать новый UserControl - он был создан с использованием только что обновленного файла шаблона, поэтому Visual Studio 2010 забирает изменения «на лету», это хорошо, кредиты Microsoft Team.


Похоже, все доступные шаблоны сгруппированы по технологии/Framework в этой папке:

"C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ItemTemplatesCache \ CSharp \"

+0

Я не говорил о включении «mc: Ignorable» и друзей в свой XAML при создании нового файла. Если вы вернетесь и снова прочитаете вопрос, я упомянул, что они вставляются в мой XAML каждый раз, когда я запускаю приложение, пока страница открыта (и активна). – TheBlueSky

+0

Хорошо, и когда вы остановите приложение, тег tis все еще находится в XAML или автоматически удаляется автоматически? Я могу себе представить, почему Vsual Studio добавляет эти теги, либо выдает, либо требуется, чтобы гарантировать какое-то состояние/логику при компиляции/анализе XAML, но если VS не удаляет этот материал - это, безусловно, ошибка – sll

+0

Нет, он не удаляется. Эти добавленные вещи могут быть важны для представления Design, но я почти не использую его ... для меня нет смысла иметь его в любом случае ... но что бы там ни было, кажется, что нет никакого способа обойти это :) – TheBlueSky