Bonjour,
Dans le cadre d’un projet, j’ai voulu encapsuler un éditeur «TextBox» et personnaliser ses propriétés par l’intermédiaire des styles (parent et enfant).
J’ai créé le projet «WrapperEditor» mise en pièce jointe qui démontre ma problématique. Il est constitué principalement de :
- WrapperEditor.MainWindow - représente l’utilisation des éditeurs avec leurs styles
- WrapperEditor.Editors.TextEdit - user control personnalisé qui encapsule l’éditeur TextBox
- Themes.Generic.Editors.TextEdit - resourceDictionary qui définit tout les styles du type WrapperEditor.Editors.TextEdit
J’en viens à ma problématique, comment déclarer ma propriété Editor dans la class WrapperEditor.Editors.TextEdit pour qu’elle soit accessible par le setter de mon style?
Code
----------------------------------------------------------------------------------------------------------------------------------------------------
Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 /// <summary> /// Identifies the Editor dependency property. /// </summary> public static readonly DependencyProperty EditorProperty = DependencyProperty.Register("Editor", typeof(TextBox),typeof(TextEdit), new UIPropertyMetadata(null)); /// <summary> /// Gets or sets the wrapper editor. /// </summary> public TextBox Editor { get { return (TextBox)GetValue(EditorProperty); } set { SetValue(EditorProperty, value); } }
Style
----------------------------------------------------------------------------------------------------------------------------------------------------
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <!-- Memo_TextEditStyle --> <Style x:Key="Memo_TextEditStyle" TargetType="{x:Type edt:TextEdit}" BasedOn="{StaticResource Default_TextEditStyle}" > <!--Comment accéder à la propriété Editor de edt:TextEdit ? --> <!--<Setter Property="Editor.MaxLength" Value="4000" />--> <!--<Setter Property="Editor.AcceptsReturn" Value="true" />--> </Style>
Je recherche à faire la même chose que cet exemple, c'est-à-dire atteindre la propriété TextBlock de la class TextBox.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <!-- Default_TextBoxStyle --> <Style x:Key="Default_TextBoxStyle" TargetType="{x:Type TextBox}" > <Setter Property="TextBlock.FontFamily" Value="Verdana" /> </Style>
En attendant votre réponse, je vous remercie d’avance pour votre aide.
Salutations,
PAJ
Partager