Bonjour à tous,
j'ai quelques difficultés concernant la modification de style en xaml.
Tout d'abord, j'ai le style suivant qui s'applique sur un ListBoxItem :
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
18
19
20
21
22
23
24 <Style x:Key="Style_ListBoxItem_Header_Default" TargetType="{x:Type ListBoxItem}"> <Setter Property="Width" Value="130" /> <Setter Property="Margin" Value="10,0,0,0" /> <Setter Property="Foreground" Value="White" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBoxItem}"> <Grid> <Border x:Name="Bd" CornerRadius="4,4,0,0" BorderBrush="#9d9d9d" BorderThickness="1,1,1,0" Background="{StaticResource TabbedButtonBrushDefault}" > <ContentPresenter Name="Content" ContentSource="Content" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" /> </Border> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="true"> <Setter TargetName="Bd" Property="Background" Value="{StaticResource TabbedButtonBrush}"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>
J'essaye désespérément de remplacer le ContentPresenter par un TextBlock sans succès j'ai tout essayé (Sur la propriété Text de faire un TemplateBinding sur Content etc..)
Ensuite toujours sur un ListBoxItem, j'ai fait ceci :
Deux petits problèmes ici :
- Le pixel blanc à gauche entre le ListBoxItem et la bordure de la ListBox
- Ensuite je voulais savoir si il y avais pas un moyen lorsque le premier élément est sélectionnée d'arrondir son border avec CornerRadius mais seulement si c'est le premier...
Pour la listbox
ListBoxItem
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <Style x:Key="Style_ListBox_User" TargetType="{x:Type ListBox}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBox"> <Border Name="Border" Background="White" BorderThickness="1" CornerRadius="10" BorderBrush="Black"> <ScrollViewer Margin="0" Focusable="false"> <StackPanel Margin="0" IsItemsHost="True" /> </ScrollViewer> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style>
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <Style x:Key="Style_ListBoxItem_User" TargetType="{x:Type ListBoxItem}"> <Setter Property="SnapsToDevicePixels" Value="true"/> <Setter Property="OverridesDefaultStyle" Value="true"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBoxItem}"> <Border Name="Bd" Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" Background="White" Height="50" BorderThickness="1,1,0,1"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="25" /> <RowDefinition Height="25" /> </Grid.RowDefinitions> <TextBlock x:Name="UserName" FontWeight="Bold" Text="Test" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" /> </Grid> </Border> <ControlTemplate.Triggers> <Trigger Property="???" Value="0"> <Setter TargetName="Bd" Property="CornerRadius" Value="10,10,0,0" /> </Trigger> <Trigger Property="IsMouseOver" Value="true"> <Setter TargetName="Bd" Property="Background" Value="{StaticResource B2}"/> </Trigger> <Trigger Property="IsSelected" Value="true"> <Setter TargetName="Bd" Property="Background" Value="{StaticResource B1}"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>
Merci d'avance.
Cordialement,
NeoKript
Partager