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 :

Ajout dynamique de bouton de défilement


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut Ajout dynamique de bouton de défilement
    Bonjour,
    Je travail sur une application qui permet de créer un menu dynamiquement à partir d'un simple fichier xaml qui ne contient que les Items du menu.
    Mon problème est que j'aimerais ajouter des boutons de défilement et ne les rendre visibles que si la taille du menu dépasse la taille de son conteneur.
    Si quelqu'un a une idée car là je ne vois pas par où commencer.....

    Merci.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Utilise un ScrollViewer: comme ca, si u as trop d'élément, les barres de défilement apparaissent automatiquement

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    Pas bête, à moi de leur donner un template pour les afficher sous forme de bouton, je vais regarder comment faire ça.
    Si quequ'un a un exemple je suis preneur, j'attaque ça cette après-midi.

    Merci Thomas.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    Voilà, j'ai réussi, en adaptant un peu ce que je voulais faire au départ mais ça fonctionne très bien.
    Dans le XAML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="30"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="30"/>
            </Grid.ColumnDefinitions>
            <Button Content="g" Name="btnLeft" Grid.Column="0"/>
            <ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden" x:Name="sv">
                <Grid x:Name="gToolBarMenu" Background="Beige" VerticalAlignment="Center"/>
            </ScrollViewer>
            <Button Content="d" x:Name="btnRight" Grid.Column="2"/>
        </Grid>
    Dans le code:
    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
    public partial class BarreBoutons : UserControl
        {
            public BarreBoutons()
            {
                InitializeComponent();
     
                //Boutons de remplacement des ScrollBars
                btnLeft.Click += new RoutedEventHandler(btnLeft_Click);
                btnRight.Click += new RoutedEventHandler(btnRight_Click);
            }
     
            /// <summary>
            /// Défilement vers la gauche pour la Barre de Boutons
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void btnLeft_Click(object sender, RoutedEventArgs e)
            {
                if (sv.ScrollableWidth > 0)
                    sv.ScrollToHorizontalOffset(sv.HorizontalOffset - 10);
            }
     
            /// <summary>
            /// Défilement vers la droite pour la Barre de Boutons
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void btnRight_Click(object sender, RoutedEventArgs e)
            {
                if (sv.ScrollableWidth > 0)
                    sv.ScrollToHorizontalOffset(sv.HorizontalOffset + 10);
            }
    Du coup mes boutons servent à faire défiler en utilisant le Scrollviewer pour déterminer s'ils doivent effectuer l'opération ou non (il faudrait jouer sur le enable plutôt que de ne tester qu'au moment du clique, je vais m'y attacher dans les prochaines heures).

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

Discussions similaires

  1. [XL-2010] Ajout dynamique de boutons plant Excel
    Par ptitcool dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/06/2014, 11h49
  2. Ajouter dynamiquement un bouton radio à un gridview
    Par mimosa803 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/07/2009, 11h07
  3. Ajout dynamique de plus de 1 bouton
    Par faroukvazaha dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/12/2008, 21h38
  4. Réponses: 2
    Dernier message: 24/01/2008, 10h44
  5. Ajouter dynamiquement un bouton
    Par toure32 dans le forum Delphi
    Réponses: 2
    Dernier message: 16/04/2007, 23h40

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