Bonjour,
je voudrais créer un UserControl avec un état : Normal ou Réduit que je représenterai par un boolean.
Quand le composant est "réduit", j'ai un certain nombre de TextBlock que je collapse.
Voilà le code de ma classe :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public partial class MyControl : UserControl { public MyControl() { this.InitializeComponent(); } public Boolean Mini { get { return (Boolean)this.GetValue(MiniProperty); } set { this.SetValue(MiniProperty, value); } } public static readonly DependencyProperty MiniProperty = DependencyProperty.Register("Mini", typeof(Boolean), typeof(MyControl), new PropertyMetadata(false)); }
Et voilà l'XAML correspondant :
Code xml : 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 <UserControl ... x:Class="MyNameSpace.MyControl"> <UserControl.Resources> <Style TargetType="TextBlock" x:Key="collapsedMini"> <Style.Triggers> <Trigger Property="MyControl.Mini" Value="True"> <Setter Property="Visibility" Value="Collapsed"/> </Trigger> </Style.Triggers> </Style> </UserControl.Resources> ... <TextBlock Style="{StaticResource collapsedMini}">...</TextBlock> ... </UserControl>
Et je souhaiterais invoquer mon composant de la sorte :
Le style fonctionne si je change la valeur par défaut dans le new PropertyMetadata().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3<MyControl /> ou <MyControl Mini="True" />
En revanche, le trigger n'a pas l'air de fonctionner : que je mette Mini="True" ou non, le composant reste à l'état normal...
Partager