2009-06-06 7 views
0

Je suis en train de forcer une grille/extension de réévaluer si elle a besoin d'une barre de défilement, comme il est montrant le vide.WPF: déclencher une teneur redimensionne avec GridSplitter

J'utilise cette mise en page:

<Grid> 
    <toolstrip /> <!-- fixed height row --> 
    <Scrollviewer> <!-- * height --> 
    <Grid> <!-- all rows are 'Auto' height --> 
     <Expander /> 
     <Expander> <!-- this one stretches far too high --> 
     <WPF Toolkit: DataGrid /> 
     <Expander> 
     <GridSplitter/> 
     <Expander /> 
    <Grid> 
    </Scrollviewer> 
    <stackpanel /> <!-- fixed height row --> 
<Grid> 

DataGrid (WPF Toolkit) est lié à une propriété lorsque la fenêtre est initialisé. Grâce à certaines recherches, j'ai réalisé que lorsque la fenêtre est initialisée, les colonnes de la GridView commencent à environ 10 pixels de large, puis le contenu est ajouté, puis elles sont redimensionnées en fonction des tailles dans le XAML. - par exemple: 2 *). Cela provoque le redimensionnement de la grille à environ 6 fois la hauteur nécessaire pour que la fenêtre s'affiche, puis elle ne revient pas en arrière et la seule façon de voir ce qui se trouve en bas de la fenêtre est de faire défiler ou déplacer le GridSplitter revenir à l'endroit où il devrait être et redimensionner la fenêtre. Je n'ai pas défini les propriétés VerticalAlignment sur quoi que ce soit.

Jusqu'à présent, j'ai essayé tous les éléments suivants appelé InvalidateArrange(), InvalidateVisual() ;, InvalidateMeasure() et UpdateLayout() sur l'extension du problème et InvalidateArrange(), InvalidateScrollInfo(), InvalidateVisual() et UpdateLayout () sur la grille au dessus mais ça ne rétrécira pas.

Est-il possible que je peux le forcer à court de forcer la largeur des colonnes du DataGrid?

+0

Je ne comprends pas - vous parlez de largeurs de colonnes DataGrid mais de problèmes de défilement vertical? Le contenu de la grille est-il enveloppé pour forcer la hauteur de la rangée à croître? – MarcE

Répondre

0

Essayez la définition de ces propriétés sur le ScrollViewer:

<ScrollViewer CanContentScroll="True" 
       VerticalScrollBarVisibility="Auto" 
       HorizontalScrollBarVisibility="Auto"> 
    ... content ... 
</ScrollViewer> 

Si cela ne fonctionne pas, pouvez-vous fournir une représentation plus exacte de votre XAML. En outre, en regardant le ScrollViewer en profondeur peut aider.

Questions connexes