WPF DataGrid 行高调低
时间: 2023-11-25 10:51:04 浏览: 106
以下是WPF DataGrid行高调低的方法:
```xml
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Height" Value="50"/>
</Style>
</DataGrid.RowStyle>
```
以上代码将DataGrid的行高设置为50。如果想要进一步调整行内元素的高度,可以使用以下代码:
```xml
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Padding" Value="10"/>
<Setter Property="FontSize" Value="20"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
</Style>
</DataGrid.CellStyle>
```
以上代码将DataGrid单元格的内边距设置为10,字体大小设置为20,垂直对齐方式设置为居中。
相关问题
wpf datagrid 拖动调序
WPF的DataGrid控件可以很方便地实现拖动调序的功能。下面我将详细解释如何在WPF中实现这个功能。
首先,我们需要将DataGrid控件的CanUserSortColumns属性设置为false,以禁止用户通过点击表头来排序列。然后,我们需要为DataGrid控件的PreviewMouseLeftButtonDown、PreviewMouseMove和PreviewMouseLeftButtonUp事件编写事件处理程序。
在PreviewMouseLeftButtonDown事件处理程序中,我们需要记录鼠标按下时所点击的行,并保存其索引。代码如下:
```
private int rowIndex = -1;
private void dataGrid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DataGridRow row = VisualTreeHelper.GetParent(e.OriginalSource as DependencyObject) as DataGridRow;
if (row != null)
{
rowIndex = dataGrid.Items.IndexOf(row.Item);
}
}
```
在PreviewMouseMove事件处理程序中,我们需要判断是否进行了拖动操作,并设置DataGrid控件的AllowDrop属性为true。然后,我们需要使用DragDrop.DoDragDrop方法来启动拖动操作。代码如下:
```
private void dataGrid_PreviewMouseMove(object sender, MouseEventArgs e)
{
if (rowIndex >= 0 && e.LeftButton == MouseButtonState.Pressed)
{
DataGridRow row = VisualTreeHelper.GetParent(e.OriginalSource as DependencyObject) as DataGridRow;
if (row != null && row.Item != null)
{
DragDrop.DoDragDrop(dataGrid, row.Item, DragDropEffects.Move);
}
}
}
```
最后,在PreviewMouseLeftButtonUp事件处理程序中,我们需要根据拖动操作的目标行来调整数据源中行的顺序。代码如下:
```
private void dataGrid_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (rowIndex >= 0 && e.LeftButton == MouseButtonState.Released)
{
DataGridRow row = VisualTreeHelper.GetParent(e.OriginalSource as DependencyObject) as DataGridRow;
if (row != null)
{
int newIndex = dataGrid.Items.IndexOf(row.Item);
if (newIndex >= 0 && newIndex != rowIndex)
{
// 调整数据源中行的顺序
// 注意:需要使用ObservableCollection<T>作为数据源类型,以便自动更新DataGrid控件的显示
}
}
rowIndex = -1;
}
}
```
以上就是实现WPF DataGrid拖动调序的基本步骤。需要注意的是,调整数据源中行的顺序时,我们需要使用ObservableCollection<T>作为数据源类型,以便自动更新DataGrid控件的显示。
WPF DataGrid 如何设置行高 Auto
要将WPF DataGrid中的行高设置为Auto,可以使用以下代码:
```
<DataGrid
...
RowHeight="Auto">
...
</DataGrid>
```
通过将`RowHeight`属性设置为`Auto`,DataGrid将自动根据内容调整行高。
阅读全文