Как установить высоту сетки данных в Silverlight 4 - PullRequest
3 голосов
/ 26 сентября 2011

У меня есть пара DataGrids внутри страницы, и каждый DataGrid позиционируется с помощью следующего макета / разметки:

<border BorderBrush="Black">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="30"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <TextBlock x:Name="Title" Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" Margin="6,0,0,0" Content="Panel Title"/>
        <toolkit:BusyIndicator Grid.Row="1" Grid.Column="0" x:Name="GridLoadingIndicator">
            <StackPanel Orientation="Vertical">
                <sdk:DataGrid x:name="GVData" 
                    VerticalAlignment="Stretch"
                    HorizontalAlignment="Stretch"
                    AutoGenerateColumns="False"
                    HorizontalScrollBarVisibility="Visible"
                    SelectionMode="Single">
                    <datagrid:DataGridTextColumn Header="Column 1" Binding="{Binding Col1}" />                              
                    <datagrid:DataGridTextColumn Header="Column 2" Binding="{Binding Col2}" />                              
                    <datagrid:DataGridTextColumn Header="Column 3" Binding="{Binding Col3}" />                              
                    <datagrid:DataGridTextColumn Header="Column 4" Binding="{Binding Col4}" />                              
                    <datagrid:DataGridTextColumn Header="Column 5" Binding="{Binding Col5}" />
                </sdk:DataGrid>
            </StackPanel>
        </toolkit:BusyIndicator>
        <StackPanel x:Name="PagerControls" Grid.Row="2" Grid.Column="0" Orientation="Horizontal">
            <!-- Pager -->
        </StackPanel>
    </Grid>
</border>

Ну, проблема в том, что сама сетка не хочет растягиваться, чтобы заполнитьпространство, отведенное для него, и более того, оно также не реагирует на события размера страницы.

Есть идеи, как решить проблему?

1 Ответ

1 голос
/ 27 сентября 2011

Дерек Битти прав в своем комментарии.

Если ваш Grid находится в пределах StackPanel, а StackPanel не имеет HorizontalAlignment="Stretch" (т.е. в направлении, которое не растет), тогда панель стека будет соответствовать его дочерним элементам.

Это аннулирует HorizontalAlignment="Stretch" в вашем Grid, поскольку оно может простираться только до его непосредственного родителя (StackPanel).Тот факт, что это StackPanel означает, что VerticalAlignment="Stretch" ничего не делает с внутренней сеткой.

Если вам действительно требуется внутренняя StackPanel (без точки только с одним дочерним элементом), то добавьте HorizontalAlignment="Stretch"к этому также.Это не повлияет на вертикальное растяжение.

Лично я бы просто выбросил StackPanel, который окружает внутренний Grid, так как он не добавляет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...