bonjour,
j'ai créé plusieurs "control template" nikel ca marche parfait, mais ...
est il possible de faire en sorte qu'en mode design les "dependency properties" de ces "control template" apparaissent (valorisées par défaut) dans le xaml ?
je m'explique avec un exemple
mettont que j'ai créé un control template "Titre" dont la seule fonction est d'afficher un texte (je sais pas très glorieux mais c'est pour l'exemple :
et pour la partie dictionnaire de ressource :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public class Titre : Control { public Titre () { this.DefaultStyleKey = typeof(Titre); } #region titre public string titre { get { return (string)GetValue(titreProperty); } set { SetValue(titreProperty, value); } } public static readonly DependencyProperty titreProperty = DependencyProperty.Register( "titre", typeof(titre), typeof(Titre), new PropertyMetadata("ici le titre", new PropertyChangedCallback(OntitreChanged))); private static void OntitreChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { ((Titre)d).OntitreChanged(e); } protected virtual void OntitreChanged(DependencyPropertyChangedEventArgs e) { } #endregion
si j'utilise mon control template ca marche mais lorsque je le drop dans ma page silverlight au niveau du xaml j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:control="clr-namespace:MyApplication.Controls"> <Style TargetType="control:Titre" > <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="control:Titre"> <Grid> <TextBlock text={TemplateBinding titre}/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary>
la propriété titre n’apparaît pas dans le Xaml bien qu'elle soit correctement valorisée et si je l'ajoute en changent sa valeur cela fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <my:Titre Height="23" x:Name="Titre1" Width="75" />
ma question est donc comment obtenir en mode design au moment de l'utilisation de mon control le code suivant (uniquement en dropant mon control)
un attribut ?,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <my:Titre Height="23" x:Name="Titre1" titre="ici le titre" Width="75" />
d'avance merci pour les pistes
Partager