Design time Custom Attributes
Aucun commentaire
Il arrive souvent lorsque vous concevez des composants d'avoir besoin d'une représentation au design time, dans Blend, très spécifique. Sans aller jusqu'à développer des design time dlls, les attributs existants peuvent être d'une grande aide (vous pourrez trouver des explications concernant les designs dll par Justin Angel ici). Du coup, je liste ci-dessous une suite d'attributs que j'utilise couramment lors de mes projets, ceux-ci sont accessibles via les espaces de nom System.ComponentModel et System.Windows.Interactivity :
- Définir une description au survol d'une propriété ou d'un contrôle dans le panneau Properties
[Description("ma description")] - Définir une valeur par défaut au Design Time
[DefaultValue()] - Définir dans quel sous catégorie du panneau propriété la propriété se trouve
[Category("Common Properties")] - Définir la propriété dans les options avancées d'une sous catégorie ou ne pas l'afficher. C'est cette sous-partie que vous pouvez déplier.
[EditorBrowsable(EditorBrowsableState.Advanced)] - Définir si une propriété supporte la liaison de donnée et si oui dans quelles directions.
[Bindable(BindableSupport.Yes,BindingDirection.TwoWay)] - Définir un type de présentation spécifique. Très utile lorsque la propriété est affectée de certain type d'objets, par exemple cibler un état visuel.
[CustomPropertyValueEditorAttribute(CustomPropertyValueEditor.StateName)] - Lorsqu'une classe définit des objets customizables, faciliter l'accès aux templates via les menus d'accès aux styles additionnels.
[StyleTypedProperty(Property = "ToolTipStyle", StyleTargetType = typeof(ToolTip))] - Définir une partie de contrôle
[TemplatePart(Name="maPartieLogique", Type=typeof(FrameworkElement))] - Définir un état visuel
[TemplateVisualState(GroupName = "CommonStates", Name = "Normal")] - Définir une propriété comme propriété de type Content alternative, celui-ci est réellement très pratique, C'est ce qu'utilise en interne les controles de type TabItem ou les charts de Silverlight ToolKit.
[AlternateContentProperty()]





