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 :

Scrollviewer et impacts sur les column d'un datagrid


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 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut Scrollviewer et impacts sur les column d'un datagrid
    Bonjour,

    Je fait appel à votre aide sur un problème qui me fait tourner en rond !!

    J'ai construit une interface dans lequel j'insère un user control dynamiquement.

    J'ai inséré un control scrollviewer avant l'insertion du user control pour que celui ci puisse prendre la place qu'il souhaite mais surtout pour que lorsque un utilisateur rétrécit l'application et que les minWidht et minHeight des user controles sont atteints, les scrollbrars s'activent et permettent de visualiser tout le contenu quand même.

    Jusque là pas de soucis, enfin presque !!

    Lorsque un user control contient un datagrid, les columns qui avait pour widht="*" sont rétrécies au maximum et certainement ne peuvent même plus être redimensionner par l'utilisateur !!!

    Dès que je met en commentaire mes balises scrollviewer, les columns des datagrids fonctionnent parfaitement et s'affichent normalement sauf que je ne peut plus voir mon usercontrol en entier lorsque je rétrécit mon application !!

    Voici le code où j'insère mon usercontrol :
    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
     
    <Grid Grid.Row="0" Name="GridPage" Margin="5,0,0,5" >
    	<Grid.RowDefinitions>
    		<RowDefinition Height="30"  />
    		<RowDefinition Height="*"  />
    	</Grid.RowDefinitions>
     
    	<Border Grid.Row="0" Style="{StaticResource Border_Title_Label2}" Background="{StaticResource brushIco}">
    		<Label Name="Label_Fct" Content="Title" Height="30" Style="{StaticResource Label_TitleMenu}" Background="{StaticResource brushIco}" />
    	</Border>
     
    	<Border Grid.Row="1" Style="{StaticResource Border_TitleMenuCorp}">
    		<!--<ScrollViewer Grid.Row="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Name="ScrollViewer_MainPage" >-->
    			<Grid  Name="Grid_MainPage" Style="{StaticResource Grid_WindowUC}" >
    				<!--Ici 1 user control inséré dynamiquement-->
    			</Grid>
    		<!--</ScrollViewer>-->
    	</Border>
    </Grid>
    J'ai essayé énormément de choses pour tenter de comprendre le comportement des controls et trouver des parades ou solutions intermédiaires.
    Mais ceci est un échec, j'espère que vous serez plus inspiré que moi.

    Merci d'avance.

  2. #2
    Membre confirmé

    Inscrit en
    Février 2007
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Février 2007
    Messages : 253
    Par défaut
    J'ai eu des problèmes avec l'ajout d'éléments dans un grid aussi :
    Cela ne m'arrive que lorsque l'élément s'affiche la première fois.

    Dans ma vue je fais çà :
    guiListUserProfiles est mon contrôle de grille.

    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
            /// <summary>
            /// Lorsque la page s'affiche, met à jour les 3 grilles sinon elles s'affichent mal (présence de scrollbar horizontales +
            /// colonne (headers) pas en face des colonnes des éléments.
            /// </summary>
            /// <param name="_oSender">Objet qui envoi l'évènement.</param>
            /// <param name="_evtArgs">Arguments</param>
            private void PageUsersViewIsVisibleChanged(object _oSender, DependencyPropertyChangedEventArgs _evtArgs)
            {
                if ((bool)_evtArgs.NewValue)
                {   // Lorsque la page s'affiche, met à jour les 3 grilles sinon elles s'affichent mal (présence de scrollbar horizontales +
                    // colonne (headers) pas en face des colonnes des éléments
                    guiListUserProfiles.Items.Refresh();
                    guiListUserAvalaibleProfiles.Items.Refresh();
                    guiListUsers.Items.Refresh();
                }
            }
    Tente ça on sait jamais.

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Merci pour l'idée, j'ai essayé d'appliquer ton code sur le datagrid d'un usercontrol mais ça n'a rien changé au comportement de celui ci lorsque que j'active le control scrollviewer.

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Par défaut
    Jette un coup d'oeil sur la gestion automatique de la taille de tes éléments.
    Ensuite rien ne t’empêche de revoir la taille mini que tu désire.
    Quand tu rentre dans le systeme des tailles auto, elle s'applique des la main window avec ceci SizeToContent to "WidthAndHeight"

    En sachant que tu peux directement appliquer une largeur et longueur mini sur tes row definition et column definition

    Espérant que ça puisse t'aider

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Par défaut
    Merci mais cette propriété ne change pas que j'ai mon scrollviewer ou non elle reste toujours en mode "Manual" et le scrollviewer influe que sur les controls du usercontrol inséré pas sur la mainwindow.

    J'utilise l'utilitaire snoop pour essayer de trouver un indice, mais pour l'instant pas de piste..

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/07/2009, 09h38
  2. Réponses: 0
    Dernier message: 16/07/2009, 07h15
  3. Réponses: 0
    Dernier message: 16/07/2009, 07h15
  4. Recordset, impact sur les clés autonum lors de jointures ?
    Par Fbzn_office dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/03/2008, 15h40
  5. requete sur les Columns
    Par suantay dans le forum SQL
    Réponses: 3
    Dernier message: 11/02/2008, 15h32

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