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 :

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
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
 
<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>
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
 
 <my:Titre Height="23" x:Name="Titre1" Width="75"  />
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

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)
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"  />
un attribut ?,

d'avance merci pour les pistes