Pregunta

Estoy trabajando en algunos controles de Silverlight y me gustaría manejar explícitamente la forma en que aparecen en Blend. Específicamente, estos controles tienen dependencias que se inicializan en tiempo de ejecución y, por lo tanto, arrojan excepciones en el diseñador. Pero incluso en ausencia de la excepción, me gustaría hacer que aparezcan de cierta manera en Blend.

Sé que esto es posible con WPF (usando myassembly.VisualStudio.Design.dll), pero no he podido encontrar información sobre cómo hacerlo con Silverlight.

He visto el truco descrito aquí que comprueba hace esto:

bool designTime = (System.Windows.Browser.HtmlPage.IsEnabled == false);

Sin embargo, preferiría una solución más explícita.

¿Fue útil?

Solución

Hay una publicación extremadamente detallada en cómo lidiar con la extensibilidad del tiempo de diseño aquí . Allí descubrirá cómo hacer las cosas de tiempo de diseño de Visual Studio y Blend para Silverlight.

  

Los proveedores de control y las personas que crean controles personalizados a menudo se encuentran deseando poder ofrecer una mejor experiencia para sus controles personalizados.   Sin embargo, hay una gran falta de información pública sobre este tema. Y he decidido corregir esta situación con este breve artículo de más de 50 páginas.

Como dije, es largo. :)

Otros consejos

El atributo específico para verificar es DesignerProperties :

using System.ComponentModel.DesignerProperties

if (DesignerProperties.GetIsInDesignMode(this))
{
}

donde this es un DependencyObject (cualquier elemento visual).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top