带滚动条的Xaml响应式DataGrid

时间:2018-03-05 17:37:08

标签: c# wpf xaml

我有一个附加了Datagrid的网格。我有问题创建了一个数据网格,在窗口调整大小时调整大小。我设置了MinHeight和MinWidth,但它似乎只是创建了一个静态高度和宽度。我也有滚动条设置可见,但没有滚动条出现?

最接近我的响应式设计是设置我的高度=" 2300"和宽度=" 2700",但滚动条仍然没有出现。我计划填充我的Datagrid的表可能会比这些维度大得多,并且需要滚动。

我尝试过使用其他SE问题的技巧,但似乎没有什么能达到我的期望。

    <!--Grid View Assett Info - Populate Table from DB -->
    <Grid x:Name="grid_AssetView"  VerticalAlignment="Top" Margin="10,236,10,10" Style="{StaticResource Grid_Shadow}">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <DataGrid VerticalAlignment="Top" 
                  Margin="0,0,0,0" 
                  Grid.Column="0"  Grid.Row="0" 
                  ScrollViewer.CanContentScroll ="True" 
                  ScrollViewer.VerticalScrollBarVisibility="Auto" 
                  ScrollViewer.HorizontalScrollBarVisibility="Auto" 
                  MinWidth="772" MinHeight="230"/>
    </Grid>

我的样式表

        <Style x:Key="Grid_Shadow" TargetType="Grid">
            <Setter Property="Background" Value="#FFF9FBFD"/>
            <Setter Property="BitmapEffect">
                <Setter.Value>
                    <DropShadowBitmapEffect
                        Color="Black"
                        Direction="320"
                        ShadowDepth="10"
                        Softness="50"
                        Opacity="0.1">

                    </DropShadowBitmapEffect>
                </Setter.Value>
            </Setter>
        </Style>

1 个答案:

答案 0 :(得分:1)

你必须设置ColumnDefinition Width =&#34; *&#34;而不是&#34; Auto&#34;如下

<!--Grid View Assett Info - Populate Table from DB -->
<Grid x:Name="grid_AssetView"  VerticalAlignment="Top" Margin="10,236,10,10" Style="{StaticResource Grid_Shadow}">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <DataGrid VerticalAlignment="Top" 
              Margin="0,0,0,0" 
              Grid.Column="0"  Grid.Row="0" 
              ScrollViewer.CanContentScroll ="True" 
              ScrollViewer.VerticalScrollBarVisibility="Auto" 
              ScrollViewer.HorizontalScrollBarVisibility="Auto" 
               MinHeight="230"/>
</Grid>

然后数据网格将自动调整大小。我还删除了MinWidth以显示调整大小没有问题。

如果有内容,滚动条也会显示。

我希望它有所帮助。