Rendu en temps de conception des contrôles Silverlight dans Expression Blend 2
-
08-07-2019 - |
Question
Je travaille sur certains contrôles Silverlight et je voudrais gérer explicitement leur apparence dans Blend. Plus précisément, ces contrôles ont des dépendances initialisées au moment de l'exécution et génèrent ainsi des exceptions dans le concepteur. Mais même en l'absence d'exception, je voudrais les faire apparaître d'une certaine manière dans Blend.
Je sais que c'est possible avec WPF (à l'aide de myassembly.VisualStudio.Design.dll), mais je n'ai pas trouvé d'informations sur cette opération avec Silverlight.
J'ai vu le hack décrit ici qui vérifie ceci:
bool designTime = (System.Windows.Browser.HtmlPage.IsEnabled == false);
Je préférerais cependant une solution plus explicite.
La solution
Il y a un article extrêmement détaillé sur comment traiter ici l’extensibilité du temps de conception . Vous y découvrirez comment utiliser les éléments de conception Visual Studio et Blend pour Silverlight.
Les vendeurs de contrôle et les auteurs de contrôles personnalisés souhaitent souvent améliorer l'expérience de leurs contrôles personnalisés. Cependant, le public manque énormément d’information sur ce sujet. Et j’ai décidé de corriger cette situation avec ce court article de plus de 50 pages.
Comme je l'ai dit, c'est long. :)
Autres conseils
L'attribut spécifique à vérifier est DesignerProperties
:
using System.ComponentModel.DesignerProperties
if (DesignerProperties.GetIsInDesignMode(this))
{
}
où this
est un DependencyObject
(tout élément visuel).