C# 高度可调整的数据网格

C# 高度可调整的数据网格,c#,wpf,xaml,datagrid,resize,C#,Wpf,Xaml,Datagrid,Resize,我将DataGrid包装在网格中如果将控件放在StackPanel中,它将只占用可视化所需的空间,因此不会拉伸 对于动态视图,我几乎总是使用带有行和列定义的网格 <Window x:Name="window" x:Class="ListViewExcel" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.mi

我将DataGrid包装在网格中如果将控件放在StackPanel中,它将只占用可视化所需的空间,因此不会拉伸

对于动态视图,我几乎总是使用带有行和列定义的网格

<Window x:Name="window" x:Class="ListViewExcel"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:F"
             Width="905.35" 
         SizeToContent="Height" WindowStartupLocation="CenterScreen" WindowStyle="None"
        BorderThickness="0" BorderBrush="{DynamicResource {x:Static SystemColors.ActiveCaptionBrushKey}}" >
    <Border x:Name="BorderCustomDialog" Background="Gold" >
        <StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
            <Grid>
                <TextBlock x:Name="TbCaption" VerticalAlignment="Center" Text="TimeLiner" 
                       Foreground="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}"
                       Padding="11" FontWeight="Bold"/>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
                    <Image x:Name="Minimize" MouseLeftButtonDown="miniWin" Source="../Resources/minimizebutton.png" Height="25" Width="25" Margin="3,3" />
                    <Image x:Name="Maximize" MouseLeftButtonDown="maxiWin" Source="../Resources/maximizebutton.png" Height="25" Width="25" Margin="3,3"/>
                    <Image x:Name="Close" MouseLeftButtonDown="closeWin" Source="../Resources/closebutton.png" Height="25" Width ="25" Margin="0,3,10,3"/>
                </StackPanel>
            </Grid>
            <Grid x:Name="grid" Background="White" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" MinHeight="50"/>
                    <RowDefinition Height="Auto" MinHeight="300"/>
                    <RowDefinition Height="Auto" MinHeight="65"/>

                </Grid.RowDefinitions>
                <Grid Grid.Row="0" Margin="0,0,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                    <Image x:Name="ImgInstructionIcon"
                    Grid.Column="0" Grid.Row="0"
                    HorizontalAlignment="Left" Margin="32,10,0,0"  VerticalAlignment="Top" 
                       Source="../Resources/edit2.jpg" Height="42" Width="48" />
                    <TextBlock x:Name="TbInstructionHeading" Grid.Row="0" Margin="96,14,112,13"
                           Text="List View to Excel" 
                           HorizontalAlignment="Stretch"  VerticalAlignment="Center" TextWrapping="Wrap"  
                           FontSize="18" Foreground="Goldenrod" Padding="7"/>
                    <Separator Margin="0" Height="5" VerticalAlignment="Bottom"/>
                </Grid>
                <Grid Grid.Row="1" Margin="0,0,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                    <DataGrid x:Name="dataGrid1"
                            Margin="20,20,20,25" ScrollViewer.VerticalScrollBarVisibility="Auto"   HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                            ScrollViewer.HorizontalScrollBarVisibility="Auto"
                             CanUserAddRows="False" Height="500">

                        <DataGrid.Style>
                            <Style TargetType="DataGrid">
                                <Setter Property="RowBackground" Value="Wheat" />
                                <Setter Property="AlternatingRowBackground" Value="WhiteSmoke" />
                            </Style>
                        </DataGrid.Style>
                        <DataGrid.CellStyle >
                            <Style TargetType="DataGridCell">
                                <Style.Triggers>
                                    <Trigger Property="IsSelected" Value="True">
                                        <Setter Property="Background" Value="LightBlue" />
                                        <Setter Property="Foreground" Value="Black" />
                                    </Trigger>
                                </Style.Triggers>
                            </Style>
                        </DataGrid.CellStyle>
                    </DataGrid>

                    <Separator Margin="0" Height="5" VerticalAlignment="Bottom"/>
                </Grid>

                <Grid Grid.Row="2" Margin="0,0,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                    <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  
                        Background="#FFECECEC" BorderBrush="#FFC9C9C9" BorderThickness="0,1,0,1" Margin="0,0,0,0"  >
                        <Grid Grid.Row="3" Margin="0,0,0,0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                            <Button x:Name="btnCodetoExcel" Content="List to Excel" HorizontalAlignment="Left" VerticalAlignment="Top" Width="96" Height="25" Margin="38,10,0,0" Click="btnCodetoExcel_Click"/>
                            <Button x:Name="btnExit" Content="Exit"  VerticalAlignment="Top" Margin="0,10,30,0" HorizontalAlignment="Right" Width="75" Height="25" Click="btnExit_Click"/>
                        </Grid>
                    </Border>
                </Grid>
            </Grid>
        </StackPanel>
    </Border>
</Window>