В WPF есть свойство DesignMode?

В Winforms вы можете сказать

if ( DesignMode ) { // Do something that only happens on Design mode } 

есть что-то подобное в WPF?

Действительно, есть :

System.ComponentModel.DesignerProperties.GetIsInDesignMode

Пример:

 using System.ComponentModel; using System.Windows; using System.Windows.Controls; public class MyUserControl : UserControl { public MyUserControl() { if (DesignerProperties.GetIsInDesignMode(this)) { // Design-mode specific functionality } } } 

В некоторых случаях мне нужно знать, инициируется ли вызов моего classа, отличного от UI, дизайнером (например, если я создаю class DataContext из XAML). Тогда подход из этой статьи MSDN полезен:

 // Check for design mode. if ((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)) { //in Design mode } 

Для любых элементов управления WPF, размещенных в WinForms , DesignerProperties.GetIsInDesignMode(this) не работает.

Итак, я создал ошибку в Microsoft Connect и добавил обходной путь:

 public static bool IsInDesignMode() { if ( System.Reflection.Assembly.GetExecutingAssembly().Location.Contains( "VisualStudio" ) ) { return true; } return false; } 

Поздний ответ, я знаю, но для тех, кто хочет использовать это в DataTrigger или где-нибудь в XAML вообще:

 xmlns:componentModel="clr-namespace:System.ComponentModel;assembly=PresentationFramework"      

Используйте это:

 if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { //design only code here } 

(Операции Async и File не работают здесь)

Кроме того, чтобы создать экземпляр объекта времени разработки в XAML (d – специальное пространство имен дизайнеров)

  ...  
  • WPF / MVVM - как обрабатывать двойной щелчок на TreeViewItems в ViewModel?
  • Перетаскивание на рабочий стол / проводник
  • Bind TextBox при нажатии клавиши Enter
  • Как вызвать функции в модели основного вида из других моделей представлений?
  • Файл метаданных '.dll' не найден.
  • Каков наилучший способ передать событие в ViewModel?
  • Как вы полностью удаляете границу кнопки в wpf?
  • Стиль windows WPF MessageBox
  • Добавить информацию о форме в ListView, когда она создана
  • WPF перед записью
  • DataGrid получает значения столбцов выбранных строк
  • Interesting Posts

    Каков пакет по умолчанию, в который помещаются мои classы, если я не укажу его?

    Непосредственно считывать / записывать данные подтверждения с помощью памяти BIO

    Вычисления без последствий (ака последовательности)

    LINQ: когда использовать SingleOrDefault и FirstOrDefault () с критериями фильтрации

    Веб-формы Asp.Net и веб-страницы Asp.Net

    onConfigurationChanged не получает вызов

    DDD, слой Anti Corruption, руководство пользователя?

    iOS 10: «, если мы находимся в реальном обработчике pre-commit, мы фактически не можем добавлять никаких новых ограждений из-за ограничения CA»

    Объяснение «привязка узла»

    Редактор сетевых пакетов для Linux?

    Как проверить доступ в Интернет на Android? InetAddress никогда не выбегает

    Установка DPI отдельных приложений в Windows

    ImageView в круге через xml

    Генератор псевдослучайных чисел – экспоненциальное распределение

    Исключить свойство из сериализации через пользовательский атрибут (json.net)

    Давайте будем гением компьютера.