usingSystem.ComponentModel;usingSystem.Windows;usingSystem.Windows.Controls;publicclassMyUserControl:UserControl{publicMyUserControl(){if(DesignerProperties.GetIsInDesignMode(this)){// Design-mode specific functionality}}}
Я применил ваше решение в своем приложении, но оно не работает. Я спросил об этом здесь stackoverflow.com/questions/3987439/… . Если хотите, присоединяйтесь к нам и обсуждайте.
В VS2019 переключатель Enable project codeдолжен быть включен (или Меню-> Дизайн-> 🗹 Выполнить код проекта).
marbel82
47
В некоторых случаях мне нужно знать, инициирован ли дизайнером вызов моего класса, не относящегося к пользовательскому интерфейсу (например, если я создаю класс DataContext из XAML). Тогда будет полезен подход из этой статьи MSDN :
// Check for design mode. if((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)){//in Design mode}
Я применил ваше решение в своем приложении, но оно не работает. Я спросил об этом здесь stackoverflow.com/questions/3987439/… . Если хотите, присоединяйтесь к нам и обсуждайте.
Nam G VU
20
Для любых элементов управления WPF, размещенных в WinForms , DesignerProperties.GetIsInDesignMode(this)не работает.
Этот класс (Windows.ApplicationModel ) предназначен для приложений Магазина, включенных в API среды выполнения Windows. Это не готовое решение WPF, если вы просто работаете с обычным настольным приложением Windows.
Ответы:
Действительно есть :
System.ComponentModel.DesignerProperties.GetIsInDesignMode
Пример:
источник
Enable project code
должен быть включен (или Меню-> Дизайн-> 🗹 Выполнить код проекта).В некоторых случаях мне нужно знать, инициирован ли дизайнером вызов моего класса, не относящегося к пользовательскому интерфейсу (например, если я создаю класс DataContext из XAML). Тогда будет полезен подход из этой статьи MSDN :
источник
Для любых элементов управления WPF, размещенных в WinForms ,
DesignerProperties.GetIsInDesignMode(this)
не работает.Итак, я создал ошибку в Microsoft Connect и добавил обходной путь:
источник
GetEntryAssembly()
вместоGetExecutingAssembly()
? Последний должен возвращать сборку, в которой определено это свойствоПоздний ответ, я знаю, но для всех, кто хочет использовать это
DataTrigger
в XAML или в любом другом месте в целом:источник
Используйте это:
(Асинхронные и файловые операции здесь не работают)
Кроме того, чтобы создать экземпляр объекта времени разработки в XAML (d - это специальное пространство имен конструктора)
источник
Windows.ApplicationModel
) предназначен для приложений Магазина, включенных в API среды выполнения Windows. Это не готовое решение WPF, если вы просто работаете с обычным настольным приложением Windows.