Bonjour,
Dans une grid, j'affiche une listview avec scrollbar:
Le tag de la grid bind sur la DependencyProperty MyGridVisible de type Visibility de ma window1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <Grid x:Name="MyGrid" Style="{DynamicResource MyGridStyle}" Tag="{Binding Path=MyGridVisible, RelativeSource = RelativeSource FindAncestor, AncestorType={x:Type Window1}}}"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Button x:Name="SeparationLabel" ... /> <ListView x:Name="MyListView" ... /> <Grid/>
Le style de la grid comporte un trigger qui va déclencher une animation pour cacher ou afficher la grid suivant la valeur de la DependencyProperty de window1:
Lors d'une action dans ma window1 (style clic bouton), je set MyGridVisible à Visible et je fais un ScrollIntoView sur le 1er élément de la list.
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
31
32
33
34
35 <Style x:Key="MyGridStyle" TargetType="{x:Type Grid}"> ... <Style.Triggers> <Trigger Property="Grid.Tag" Value="{x:Static Visibility.Visible}"> <Trigger.EnterActions> <BeginStoryboard> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="{x:Static Visibility.Visible}" /> </ObjectAnimationUsingKeyFrames> <DoubleAnimation To="200" Storyboard.TargetProperty="Height" Duration="00:00:00.5" /> </Storyboard> </BeginStoryboard> </Trigger.EnterActions> <Trigger.ExitActions> <BeginStoryboard> <Storyboard> <DoubleAnimation To="0" Storyboard.TargetProperty="Height" Duration="00:00:00.5" /> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility"> <DiscreteObjectKeyFrame KeyTime="0:0:0.5" Value="{x:Static Visibility.Collapsed}" /> </ObjectAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </Trigger.ExitActions> </Trigger> </Style.Triggers> </Style>
Si le 1er élément n'était pas visible dans la liste lors de la dernière apparition de la grid, le scrolling s'arrête toujours au 2ième élément.
Et cela ne le fait que pour le 1er élément.
Merci d'avance !
AL2000
Partager