Как вручную перезагрузить дизайнер Visual Studio для WPF - PullRequest
53 голосов
/ 16 сентября 2010

Есть ли способ заставить дизайнер WPF перезагрузить или обновить, не перестраивая весь проект или решение?

Если есть ошибка, я получаю опцию в представлении дизайнера для обновления конструктора.Но если у меня нет ошибки, как я могу заставить дизайнер обновиться после внесения изменений?

Ответы [ 10 ]

33 голосов
/ 06 августа 2013

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

Нажмите Ctrl + Сдвиг + Esc Перейдите на вкладку «Процессы».Kill XDesProc.exe

Это также исправляет проблемы с окном свойств (например, когда оно заклинило, и вы не можете набрать в нем вещи).

1 Это решение проблем дизайнеров.Ваши проблемы также могут быть вызваны проблемами компиляции, в этом случае просто щелкните правой кнопкой мыши решение в обозревателе решений и очистите его.Причиной этого является то, что иногда компиляция теряет синхронность с сгенерированными файлами из XAML, а очистка решения просто удаляет эти промежуточные файлы;это как сброс, так что ваша компиляция может начинаться с чистого листа.


Чтобы сделать это быстро:

Удобно, как правило, последний, если отсортирован по алфавиту.Когда это так, для меня это почти как ритуал: быстро открыть диспетчер задач, щелкнуть любой процесс, нажать Конец , Удалить , Ввести (готово), Esc (выход из диспетчера задач).Вместо перезапуска VS и ожидания всех загрузок и выгрузок вы можете сделать это за 1-2 секунды.

20 голосов
/ 22 августа 2015

Вы можете добавить это в меню Tools в Visual Studio.

После настройки используйте Tools..XAML Designer Restart:

Alt + T затем L

enter image description here

enter image description here

Я попытался настроить егодля Alt + T затем X , но это конфликтует с Tools..Choose ToolboX Items.

Обновление

В эти дни я предпочитаюпросто нажмите Ctrl + Shift + Esc , чтобы вызвать диспетчер процессов, затем X , чтобы перейти к XDesProc.exe, затем Удалить , чтобы убить мошеннического процесса (ов).

13 голосов
/ 26 марта 2016

В новых версиях Visual Studio в нижней части конструктора есть значок «Отключить код проекта». Если вы выключите и включите его, перезагрузите конструктор.

7 голосов
/ 31 декабря 2010

Дизайнер Visual Studio пытается синхронизировать визуализированное представление с XAML. Это рекламируемое поведение.

  • Первое, что вы должны проверить, это то, что в окне ошибок нет ошибок. Это может быть что-то простое, например, отсутствующая угловая скобка.
  • Второе, что нужно проверить, - есть ли у вас какой-либо код (кроме вашего кода), который необходимо скомпилировать, чтобы дизайнер правильно отобразил ваш XAML. Это включает в себя любые ваши собственные типы данных, которые вы создаете в XAML, любые пользовательские элементы управления, которые вы написали (например, MyTextBlock, полученный из TextBlock), или любые классы, прямо или косвенно поддерживающие данные времени разработки. Если это так, вам нужно перестроить свой проект.
  • Последнее, что нужно проверить, это возможные ошибки в конструкторе. Несмотря на рекламируемое поведение, дизайнер может потерять синхронизацию из-за ошибок. После этого закройте окно XAML и снова откройте его. Другие приемы, которые могут сработать, - это выбрать вкладку XAML, а затем вкладку «Дизайн» или развернуть панель XAML.

Что касается перестройки вашего приложения, вам не нужно делать это как привычку. Вам нужно перекомпилировать его только тогда, когда действуют вышеуказанные условия. Как только они не применяются, вы можете просто отредактировать XAML. Другой способ сказать, что если вы не модифицировали код, вам не нужно перестраивать (по модулю ошибок).

3 голосов
/ 15 декабря 2010

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

1 голос
/ 30 декабря 2010

В этом файле XAML обрабатывается любое событие, поэтому в большинстве случаев оно не отображает предварительный просмотр проекта из Visual Studio. Если вы хотите увидеть дизайн из Visual Studio, попробуйте использовать Command Binding вместо события, вы увидите предварительный просмотр.

1 голос
/ 06 ноября 2010

По крайней мере теоретически, представление конструктора всегда синхронизировано с XAML, поэтому нет необходимости обновлять его вручную. Могу ли я спросить, при каких обстоятельствах вы хотите перезагрузить его?

0 голосов
/ 14 января 2018

Для информации у меня возникла та же проблема с XAML Designer из Visual Studio Community 2017, то есть иногда дизайнер ничего не показывает, проще всего тогда закрыть файл XAML и снова открыть его.

Я также часто получаю исключение «Произошло необработанное исключение - нажмите здесь, чтобы перезагрузить конструктор - Подробности: Конструктор XAML неожиданно завершил работу» (щелчок успешно перезапускает конструктор).

Обратите внимание, что в этой версии VS процесс конструктора XAML не называется XDesProc.exe, а UwpSurface.exe .Если вы предпочитаете или должны убить процесс, тогда дизайнер показывает то же исключение, что и выше, и вы можете перезапустить его.

0 голосов
/ 25 июня 2014

Когда вы добавляете новую строку кода или новый объект, конструктор XAML синхронизируется, но я сталкивался с несинхронным поведением при изменении свойства объекта.

Сложный способ заключается в том, что при изменениисвойство, которое нужно только удалить символ «>» в ​​конце инструкции, а затем повторно ввести его.

0 голосов
/ 30 декабря 2010

Я не уверен, как это работает при редактировании WPF, но на страницах ASP.NET, когда представление дизайна не обновляется, я могу сделать 2 вещи

  1. Выйти из Visual Studio и перезапустить
  2. Зайдите в исходный вид (не разделенный), наберите что-нибудь и удалите его (не отменяя, просто удалив или отпустив) и сохраните его.Затем вернитесь в представление конструктора, обычно это представление было обновлено.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...