usingSystem.ComponentModel;usingSystem.Windows;usingSystem.Windows.Controls;publicclassMyUserControl:UserControl{publicMyUserControl(){if(DesignerProperties.GetIsInDesignMode(this)){// Design-mode specific functionality}}}
Apliqué su solución en mi aplicación pero no funciona. Lo pregunté aquí stackoverflow.com/questions/3987439/… . Si lo desea, únase a nosotros y discuta.
En VS2019, el interruptor Enable project codedebe estar habilitado (o Menú-> Diseño-> 🗹 Ejecutar código de proyecto).
marbel82
47
En algunos casos, necesito saber si el diseñador inicia una llamada a mi clase que no es de IU (como si creo una clase DataContext desde XAML). Entonces, el enfoque de este artículo de MSDN es útil:
// Check for design mode. if((bool)(DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue)){//in Design mode}
Apliqué su solución en mi aplicación pero no funciona. Lo pregunté aquí stackoverflow.com/questions/3987439/… . Si lo desea, únase a nosotros y discuta.
Nam G VU
20
Para cualquier control de WPF alojado en WinForms , DesignerProperties.GetIsInDesignMode(this)no funciona.
Esa clase ( Windows.ApplicationModel) es para aplicaciones de la Tienda, incluidas en la API de Windows Runtime. Esta no es una solución WPF lista para usar si solo está trabajando en una aplicación de escritorio de Windows normal.
Respuestas:
De hecho hay :
System.ComponentModel.DesignerProperties.GetIsInDesignMode
Ejemplo:
fuente
Enable project code
debe estar habilitado (o Menú-> Diseño-> 🗹 Ejecutar código de proyecto).En algunos casos, necesito saber si el diseñador inicia una llamada a mi clase que no es de IU (como si creo una clase DataContext desde XAML). Entonces, el enfoque de este artículo de MSDN es útil:
fuente
Para cualquier control de WPF alojado en WinForms ,
DesignerProperties.GetIsInDesignMode(this)
no funciona.Entonces, creé un error en Microsoft Connect y agregué una solución alternativa:
fuente
GetEntryAssembly()
lugar deGetExecutingAssembly()
? Este último debería devolver el ensamblado donde se define esta propiedadRespuesta tardía, lo sé, pero para cualquier otra persona que quiera usar esto en
DataTrigger
, o en cualquier lugar de XAML en general:fuente
Usa este:
(Las operaciones asincrónicas y de archivo no funcionarán aquí)
Además, para crear una instancia de un objeto en tiempo de diseño en XAML (d es el espacio de nombres del diseñador especial)
fuente
Windows.ApplicationModel
) es para aplicaciones de la Tienda, incluidas en la API de Windows Runtime. Esta no es una solución WPF lista para usar si solo está trabajando en una aplicación de escritorio de Windows normal.