locked
deux Accordions qui affichent pas tout le contenu de formulaire RRS feed

  • Question

  • Bonjour à tous,

    j'ai un formulaire qui est découpé sur 2 parties et pour chaque partie j'ai mis un accordion mais le probleme au premier lancement la première partie occupe la moitié de page c.a.d il affiche pas toute la partie il affiche a peu pré la moitié de champs l'essentiel que sur la 2 ème moitié de page qu'il se bloque et affiche l'accordion numéro 2  et je suis obligé d'aller vers le 2 éme accordion et je reviens sur le premier accordion et là ça marche il affiche tout .

    voici le code :

     <tool:Accordion HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
          <tool:AccordionItem x:Name="accordion1" Header="Informations Générales" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
            <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White" x:Name="Links"
       Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
       Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}, Path=ActualHeight}">
    
    

    et le 2 ème accordion voici le code aussi :

    </Grid>
    
    </tool:AccordionItem>
    
     
    
    <tool:AccordionItem x:Name="accordion2" Header="Grandeurs caractéristiques" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    
    <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White" 
    
    Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
    
    Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}, Path=ActualHeight}">
    
    
    
    
    

     

    Cdt,
    mercredi 27 juillet 2011 07:59

Réponses

  • Bonjour,

    Vu que vous binder l'actualWidth, il est possible qu'a l'ouverture du formulaire, les enfants du Grid n'ont pas encore leur largeur de calculé.

    Donc dans le code C#, il faudrait forcer le grid à dessiner au chargement du formulaire ses enfants.

    Voici ce qu'il faut ajouter dans le constructeur ou le Load :

    //LayoutRoot est le Nom du Grid dans mon cas 
          LayoutRoot.Measure(new Size());
          LayoutRoot.Arrange(new Rect());
          LayoutRoot.UpdateLayout();
    

    Si cela ne fonctionne plus, il faudrait un peu plus de code Xaml , dont le conteneur principale jusqu'au accordion.

     

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue.
    mercredi 27 juillet 2011 19:11
    Modérateur

Toutes les réponses

  • Je pense que ton problème vient d'ici :

     

     Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
      Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid}}, Path=ActualHeight}"


     As tu essayé en fixant la valeur de Height ?


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    mercredi 27 juillet 2011 09:17
    Modérateur
  • En faite ces 2 lignes sont conseillé parce que l'accordion chaneg la forme de la page , par contre pourquoi quand je selectionne le 2 eme accrodion et après je reviens vers le premier tout ça marche et le formulaire s'affiche sur tte la page ?

     

    mercredi 27 juillet 2011 10:03
  • Bonjour,

    Vu que vous binder l'actualWidth, il est possible qu'a l'ouverture du formulaire, les enfants du Grid n'ont pas encore leur largeur de calculé.

    Donc dans le code C#, il faudrait forcer le grid à dessiner au chargement du formulaire ses enfants.

    Voici ce qu'il faut ajouter dans le constructeur ou le Load :

    //LayoutRoot est le Nom du Grid dans mon cas 
          LayoutRoot.Measure(new Size());
          LayoutRoot.Arrange(new Rect());
          LayoutRoot.UpdateLayout();
    

    Si cela ne fonctionne plus, il faudrait un peu plus de code Xaml , dont le conteneur principale jusqu'au accordion.

     

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue.
    mercredi 27 juillet 2011 19:11
    Modérateur
  • Bonjour,

    Est-ce que vous avez testé la solution proposée ? Merci de partager avec nous les résultats,afin que d'autres personnes avec le même problème puissent profiter de cette solution.


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    samedi 30 juillet 2011 11:51
    Modérateur