Silverlight изменить размер - PullRequest
1 голос
/ 21 июня 2011

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

    <Grid x:Name="LayoutRoot" Background="White" Width="300">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <StackPanel Grid.Row="0">
        <StackPanel Orientation="Horizontal">
            <TextBlock Height="23" Text="Inventory:"/>
        </StackPanel>
        <sdk:DataGrid AutoGenerateColumns="False" Height="Auto" Name="dataGrid1" HorizontalAlignment="Left"  IsReadOnly="True" >
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Binding="{Binding Name}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Header="Name" IsReadOnly="True" />
                <sdk:DataGridTextColumn Binding="{Binding CreatedDate}" Header="Created Date" />
                <sdk:DataGridTextColumn Binding="{Binding ChangedDate}" Header="Last Edited" />
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>
    </StackPanel>        
    <sdk:GridSplitter Grid.Row="1" Height="10" Width="300"  HorizontalAlignment="Stretch"/>
    <Grid Grid.Row="2"></Grid>
</Grid>

Перед перемещением сплиттера enter image description here

После перемещения сплиттера enter image description here

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

1 Ответ

1 голос
/ 21 июня 2011

Проблема в том, что у вас есть DataGrid в StackPanel. Вертикально ориентированная панель стека не имеет вертикальной границы, поэтому сетка данных отображает свою полную высоту, не подозревая, что она будет обрезана. Вы должны использовать другую сетку, чтобы получить желаемый результат: -

   <Grid x:Name="LayoutRoot" Background="White" Width="300">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid Grid.Row="0">
       <Grid.RowDefinitions>
           <RowDefinition Height="Auto" />
           <RowDefinition Height="*" />
       </Grid.RowDefinitions>
       <TextBlock Grid.Row="0" Height="23" Text="Inventory:"/>
       <sdk:DataGrid Grid.Row="1" AutoGenerateColumns="False" Name="dataGrid1" HorizontalAlignment="Left"  IsReadOnly="True" >
            <sdk:DataGrid.Columns>
                <sdk:DataGridTextColumn Binding="{Binding Name}" CanUserReorder="True" CanUserResize="True" CanUserSort="True" Width="Auto" Header="Name" IsReadOnly="True" />
                <sdk:DataGridTextColumn Binding="{Binding CreatedDate}" Header="Created Date" />
                <sdk:DataGridTextColumn Binding="{Binding ChangedDate}" Header="Last Edited" />
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>
    </Grid>        
    <sdk:GridSplitter Grid.Row="1" Height="10" Width="300"  HorizontalAlignment="Stretch"/>
    <Grid Grid.Row="2"></Grid>
</Grid>
...