2009-06-06 11 views
0

Ich versuche zu zwingen, ein Gitter/Expander neu zu bewerten, ob es eine Bildlaufleiste benötigt, da es Leerheit zeigt.WPF: Eine Größenänderung des Inhalts mit GridSplitter auslösen

Ich verwende dieses Layout:

<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> 

Das Datagrid (WPF Toolkit) auf eine Eigenschaft gebunden ist, wenn das Fenster initialisiert wird. Durch einige Nachforschungen habe ich festgestellt, dass die Spalten im GridView bei der Initialisierung des Fensters mit einer Breite von ungefähr 10 Pixeln beginnen, dann wird der Inhalt hinzugefügt und dann wird die Größe basierend auf den Größen im XAML geändert (Alle mit Sternbreiten - zB: 2 *). Dadurch wird die Größe des Rasters auf etwa das 6-fache der Höhe geändert, die das Fenster anzeigen soll. Es springt dann nicht zurück, und der untere Teil des Fensters kann nur durch Verschieben oder Verschieben des GridSplitters angezeigt werden zurück zu wo es sein sollte und Größe des Fensters. Ich habe die VerticalAlignment-Eigenschaften für nichts festgelegt.

Bisher habe ich alle folgenden genannt InvalidateArrange versucht(), InvalidateVisual() ;, InvalidateMeasure() und UpdateLayout() auf das Problem Expander und InvalidateArrange(), InvalidateScrollInfo(), InvalidateVisual() und UpdateLayout () auf dem Gitter darüber, aber es wird nicht zurück schrumpfen.

Gibt es eine Möglichkeit, ich kann es zwingen, die Breite der Spalten im DataGrid zu erzwingen?

+0

Ich verstehe nicht - Sie sprechen über DataGrid Spaltenbreiten aber vertikale Scroll-Probleme? Wird durch das Umbrechen des Rasterinhalts die Zeilenhöhe erhöht? – MarcE

Antwort

0

versuchen, diese Eigenschaften auf der Scrolleinstellung:

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

Wenn das nicht funktioniert, können Sie bieten eine genauere Darstellung Ihrer XAML. Auch ein genauerer Blick auf die ScrollViewer kann helfen.

Verwandte Themen