2010-01-02 3 views
0

Je travaille sur une application avec un DataGrid de la boîte à outils WPF et la largeur n'a pas été précisée dans le XAML (par défaut automatique), et il fonctionnait très bien. Cela étendrait la largeur de la fenêtre lorsque je redimensionnerais la fenêtre. Cependant, tout à coup, la largeur "auto" est énorme et je ne sais pas pourquoi. Lorsque je tire le fichier xaml en fusion, la largeur automatique est de 50002 pixels. J'ai à peine touché autre chose dans mon xaml depuis que c'est arrivé. Quelqu'un sait pourquoi il le fait et d'où vient ce numéro? MerciPourquoi la largeur "Auto" de DataGrid est-elle si énorme?

Répondre

3

La cause la plus courante pour ce que j'ai vu est lorsque le contrôle est à l'intérieur d'un StackPanel avec orientation = horizontale. StackPanels ne contraint pas ses contrôles dans le sens de l'empilage, donc si rien d'autre ne contraint le contrôle, il atteint une taille maximale.

Si c'est le problème essayez de remplacer votre StackPanel avec un équivalent DockPanel ou Grille.

+0

Même si ce n'est pas un 'StackPanel', je soupçonne cela a plus à voir avec ce que le' DataGrid' est contenu dans, que le contrôle lui-même. –

+0

Ce problème ... était exactement sauf qu'il semblait apparaître au hasard à un moment donné qui était ce qui m'a laissé perplexe. Quoi qu'il en soit, une grille avec des colonnes fonctionne parfaitement maintenant. Merci. – Adam

0

Si vous effectuez un redimensionnement manuel à l'aide de l'IDE Visual Studio, cela a peut-être pu se produire ou vous avez accidentellement saisi la mauvaise taille de 50002. Supprimer les largeurs et définir sur automatique devrait résoudre le problème.

+0

Je ne jamais utiliser l'écran de conception. J'ai essayé de régler spécifiquement la largeur sur Auto, mais c'est la même chose. Mon code était correct avant avec aucune propriété de largeur définie. C'est un problème vraiment étrange. – Adam

Questions connexes