IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Listbox qui ne scroll pas


Sujet :

Windows Presentation Foundation

  1. #1
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut Listbox qui ne scroll pas
    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é ?

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    C'est curieux car il n'y a rien à faire normalement. Le comportement par défaut est celui que tu souhaites obtenir.

    Une question, comment remplis-tu ta ListBox ?

  3. #3
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Citation Envoyé par binoo Voir le message
    Salut,

    C'est curieux car il n'y a rien à faire normalement. Le comportement par défaut est celui que tu souhaites obtenir.

    Une question, comment remplis-tu ta ListBox ?
    Bon, déjà si le comportement par défaut est celui que je voulais, ca me rassure un peu. Vu que je ne capte pas encore grand chose au WPF, j'arrêtes pas de pester parce que je retrouve rien de ce qu'on fait super facilement en Winform (genre les dock, les ancres, etc...). Bien sur, c'est juste parce que ca ne s'appel pas tout à fait pareil ou que ca n'a plus spécialement de sens.
    Mais vu ce que mes recherches me donnent jusqu'ici par rapport au scroll je commencais à me dire que le WPF est un sacré retour en arrière.

    Enfin bref, ma liste est remplit par binding sur un objet enumerable.
    Il s'agit en fait un presenter pour l'intellisense de Visual Studio 2010.
    Je me suis basé sur l'exemple donné ici : http://editorsamples.codeplex.com/So...w/63989#815855

    J'ai modifié un peu histoire de rendre le tout plus sorbre (parce que leurs machin ca fait vraiment kikoolol et on s'en tape un peu dans un IDE) et surtout j'ai ajouté du filtrage par type (n'afficher que les propriétés, que les méthodes, etc...)

    EDIT: Ah oui, je précise que sans modifier leurs code j'ai ce même problème.

  4. #4
    Membre éprouvé Avatar de jmix90
    Homme Profil pro
    Consultant .Net
    Inscrit en
    Juillet 2007
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2007
    Messages : 576
    Points : 998
    Points
    998
    Par défaut
    Bonsoir,

    Effectivement, passer de WinForm à WPF peut être un peu déroutant mais ne t'inquiètes pas tu vas tout retrouver ... en mieux (Comment ça j'ai un parti pris ? )

    Tu lui donnes quoi comme objet en paramètre à ScrollIntoView ?

    Bon courage !

  5. #5
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Je lui passe un item de la collection (donc un item Completion).
    Faudrait que je passe un ListBoxItem a la place peut-être ? J'ai pas tenté ca.

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/11/2009, 15h46
  2. Un scrolledForm qui ne scroll pas
    Par Jounayd dans le forum Eclipse
    Réponses: 0
    Dernier message: 16/05/2008, 10h41
  3. Elt d'un Listbox qui ne s'affiche pas en integral
    Par zaiany dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/06/2007, 12h54
  4. Encore un scrollPane qui ne scroll pas
    Par Yann39 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 21/12/2006, 09h41
  5. Un JScrollPane qui ne scrolle pas !
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 30/09/2006, 23h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo