2011-06-21 7 views
1

グリッドの行のサイズを変更するためにグリッドスプリッタを使用しようとしていますが、期待した動作が得られません。silverlight resize datagrid datagridsplitter

<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

問題は、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> 
関連する問題