WPF-Stretch ListBox Höhe von 100% der Raster.Zeile?

Versuche ich zu dehnen, die Höhe eines ListBox 100% der Höhe des übergeordneten Netz (dh 90% der Höhe des übergeordneten Ansicht); auch wenn die listboxes leer sind. Ich sollte anmerken, dass VerticalAlignment="Stretch" scheint nicht zu funktionieren, also habe ich es entfernt von der ListBox und StackPanel Elemente. Wie jetzt, die ListBox erstreckt sich nur so weit, wie es erforderlich ist, um die Anzahl der Elemente, die es enthält. Ich verstehe, dass die Zeile-Definitionen sollte funktionieren, aber wenn beide Listen leer sind, beide verkleinert, um ein paar Pixel hoch (zusammen mit der grid-Zeilen). Könnte etwas verursachen, diese Zeilen zu schrumpfen, trotz der expliziten Höhe Erklärung?

<Grid.ColumnDefinitions>
        <ColumnDefinition Width=".24*"/>
        <ColumnDefinition Width=".73*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height=".9*"/>
        <RowDefinition Height=".1*"/>
    </Grid.RowDefinitions>
    <ListBox Grid.Column="0" Grid.Row="0" Name="Subdivisions" SelectedItem="{Binding SelectedSubdivisionViewModel}" ItemsSource="{Binding Path=Subdivisions}" Grid.IsSharedSizeScope="True">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <Border BorderBrush="#FF4788c8" BorderThickness="1,1,1,1" CornerRadius="8,8,8,8">
                        <Expander IsExpanded="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}">
                            <Expander.Header>
                                <StackPanel>
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*" SharedSizeGroup="col1" />
                                            <ColumnDefinition Width=".1*" SharedSizeGroup="col2" />
                                            <ColumnDefinition Width="*" SharedSizeGroup="col3" />
                                        </Grid.ColumnDefinitions>
                                        <Grid.RowDefinitions>
                                            <RowDefinition/>
                                            <RowDefinition/>
                                        </Grid.RowDefinitions>
                                        <TextBlock Grid.Column="0" Grid.Row="0">
                                            <TextBlock.Text>
                                                <MultiBinding StringFormat="Name: {0}">
                                                  <Binding Path="SubdivisionName" />
                                                  <Binding Path="SubdivisionID" />
                                                </MultiBinding>
                                            </TextBlock.Text>
                                        </TextBlock>
                                        <TextBlock Grid.Column="2" Grid.Row="0">
                                            <TextBlock.Text>
                                                <MultiBinding StringFormat="ID: {0}">
                                                  <Binding Path="SubdivisionName" />
                                                  <Binding Path="SubdivisionID" />
                                                </MultiBinding>
                                            </TextBlock.Text>
                                        </TextBlock>
                                        <TextBlock Grid.Column="2" Grid.Row="1">
                                            <TextBlock.Text>
                                                <MultiBinding StringFormat="ID: {0}">
                                                  <Binding Path="SubdivisionName" />
                                                  <Binding Path="SubdivisionID" />
                                                </MultiBinding>
                                            </TextBlock.Text>
                                        </TextBlock>
                                    </Grid>
                                </StackPanel>
                            </Expander.Header>
                            <StackPanel>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="*"/>
                                        <ColumnDefinition/>
                                        <ColumnDefinition/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition />
                                        <RowDefinition />
                                    </Grid.RowDefinitions>
                                    <TextBlock Text="{Binding ElementName=SubdivisionID}" />
                                    <TextBlock Text="{Binding Path=SubdivisionID}" />
                                </Grid>
                            </StackPanel>
                        </Expander>
                    </Border>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
Was sehen Sie stattdessen? Wenn ich diese ListBox ist 90% der Fensterhöhe, die ist, was ich erwarte, um zu sehen, in einer Zeile mit <RowDefinition Height=".9*"/>.
Es scheint, die erste Zeile ist nicht zu Ehren der 90% - Höhe definition.
In meinem Fall war es ein Stil für die GroupBox in einer Ressource-Wörterbuch verwiesen wird, die von App.xaml. Die VerticalAlignment war Top. Ich setze die Eigenschaft, lokal zu Stretch. Dies beantwortet nicht die Frage, aber kann helfen, jemand mit einem ähnlichen problem.

InformationsquelleAutor alan | 2011-03-20

Schreibe einen Kommentar