C# 最大化窗口时垂直响应Datagrid
我试图动态设置datagrid中的行的高度,我的意思是datagrid的高度应该基于数据绑定(来自数据库),我对列没有问题,当我最大化窗口时,列会增加并占用可用空间,它们会做出响应。 现在的问题是行,所以我需要的是当我最大化窗口时,datagrid应该垂直占用可用空间(增加标题的字体大小和datagrid中显示的数据) 是否有可能使datagrid的行响应 Xaml代码:C# 最大化窗口时垂直响应Datagrid,c#,wpf,xaml,datagrid,C#,Wpf,Xaml,Datagrid,我试图动态设置datagrid中的行的高度,我的意思是datagrid的高度应该基于数据绑定(来自数据库),我对列没有问题,当我最大化窗口时,列会增加并占用可用空间,它们会做出响应。 现在的问题是行,所以我需要的是当我最大化窗口时,datagrid应该垂直占用可用空间(增加标题的字体大小和datagrid中显示的数据) 是否有可能使datagrid的行响应 Xaml代码: <DockPanel Grid.Row="2" Width="auto" Mi
<DockPanel Grid.Row="2" Width="auto" MinWidth="800" Height="auto" >
<ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Auto">
<DataGrid VerticalScrollBarVisibility="Auto" Margin="20" Height="auto" Width="auto" GridLinesVisibility="All" ItemsSource="{Binding GridModel}" x:Name="UserGrid" MinWidth="1200"
VerticalAlignment="Top" FlowDirection="RightToLeft"
AutoGenerateColumns="False" CanUserAddRows="false" MinHeight="800"
Grid.RowSpan="2" RenderTransformOrigin="0.497,0.551" MouseDoubleClick="UserGrid_MouseDoubleClick" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Hidden">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Height" Value="Auto"/>
</Style>
</DataGrid.RowStyle>
<DataGrid.Resources>
<Style x:Key="DisableSelection" TargetType="DataGridCell">
<!-- <Setter Property="Focusable" Value="False"/> -->
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="BorderBrush" Value="Transparent"/>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="choose" x:Name="choose" Binding="{Binding isChecked}" >
<DataGridCheckBoxColumn.CellStyle>
<Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsEditing" Value="True"/>
</Trigger>
</Style.Triggers>
<EventSetter Event="CheckBox.Checked" Handler="OnChecked"/>
<EventSetter Event="CheckBox.Unchecked" Handler="OnChecked"/>
<Setter Property="Background" Value="Transparent" />
</Style>
</DataGridCheckBoxColumn.CellStyle>
</DataGridCheckBoxColumn>
<DataGridTextColumn Width="*" CellStyle="{StaticResource DisableSelection}" Header="IDw" x:Name="workIdcl" Binding="{Binding wId}" IsReadOnly="True" />
<DataGridTextColumn Width="*" CellStyle="{StaticResource DisableSelection}" Header="subName" x:Name="subscriberNamecl" Binding="{Binding subName}" IsReadOnly="True"/>
<DataGridTextColumn Width="*" CellStyle="{StaticResource DisableSelection}" Header="UserName" x:Name="patientNamecl" Binding="{Binding UserName}" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</DockPanel>
您可以通过将整个datagrid或父容器放在viewbox中来扩展它。那么DockPanel呢?您能给我一些代码吗?我如何使用viewbox?我应该在ViewBox中使用什么属性?它的子元素需要有一个固定的大小,所以无论你在什么地方放置开始和结束标记,都要设置该元素的大小。你的dockpanel似乎毫无意义。为什么在datagrid周围有一个scrollviewer,而它本身就有一个scrollviewer?两者似乎都没有意义。我已经修复了这个问题,并且删除了另一个scrollviewer,所以现在我在datagrid中只有一个scrollviewer。我已经测试了ViewBox,但是没有得到我需要的,它可以缩放内容,但是我在使用ViewBox时丢失了datagrid中的数据