Bonjour,
Je suis en train de tenter un truc en WPF (première fois que j'en fais, j'ai beaucoup de mal ) mais je bute sur un truc .
Pour fair simple, j'ai un contrôle qui peut être redimensionnable.
Celui-ci est composé d'une Grid contenant 5 lignes, une seule colonne.
(D'ailleurs, peut-être faut-il utiliser autre chose que la grille ?)
Toutes les lignes sont de hauteur fixes sauf la seconde qui doit s'adapter à la taille restante.
Cette seconde ligne contient une listbox. La scrollbar fonctionne correctement dessus à un détail près : si je navigue au clavier dans cette liste je n'arrive pas a garder a l'écran l'élément sélectionné.
Par exemple, admettons que 3 lignes soient visible dans cette liste, je sélectionne la première ligne et j'appuis 3 fois sur la flèche "bas" de mon clavier, le focus passe sur le quatrième élément de la liste (normal) mais la liste ne scroll pas pour le rendre visible.
J'ai tenté un ScrollIntoView mais ca ne fonctionne pas pour autant.
Voila un petit extrait du xaml histoire de mieux voire ce que je veux dire
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 <UserControl <!-- bla bla --> > <UserControl.Resources> <!-- Un template de data et deux/trois style --> </UserControl.Resources> <Border Name="bdrBorder" BorderBrush="Black" Background="White" BorderThickness="2" CornerRadius="10"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="16"/> <RowDefinition Height="*" /> <RowDefinition Height="3" /> <RowDefinition Height="32" /> <RowDefinition Height="16" /> </Grid.RowDefinitions> <!-- Contenu de la row 0 --> <ListBox Name="lstMaListe" Grid.Row="1" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Hidden"> </ListBox> <!-- Contenu des autres rows --> </Grid> </Border> </UserControl>
Quelqu'un à une idée de ce qu'il faut faire pour toujours garder à l'écran l'élément sélectionné ?
Partager