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 :

Scrolling sur le premier élément d'une listview


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Points : 77
    Points
    77
    Par défaut Scrolling sur le premier élément d'une listview
    Bonjour,

    Dans une grid, j'affiche une listview avec scrollbar:
    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 tag de la grid bind sur la DependencyProperty MyGridVisible de type Visibility de ma window1.
    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:
    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>
    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.
    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

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Points : 77
    Points
    77
    Par défaut
    Finalement, j'attend l'affichage complet de la Grid avant de la scroller.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Points : 1 313
    Points
    1 313
    Par défaut
    globalement quand tu veux afficher un item dans la listview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.listview1.ScrollIntoView(this.listview1.Items[10]);
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!
    http://ultimatecorp.eu/wpf/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test sur le premier élément d'une collection
    Par okoweb dans le forum jQuery
    Réponses: 6
    Dernier message: 22/05/2014, 11h39
  2. Réponses: 2
    Dernier message: 12/02/2008, 10h51
  3. Réponses: 3
    Dernier message: 06/10/2006, 14h55
  4. Sélectionner le premier élément d'une ComboBox
    Par deubal dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/11/2005, 10h32
  5. Réponses: 2
    Dernier message: 11/01/2005, 14h10

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