Wpf 如何支持在DataGrid中重新调整DataGridRowHeader列的大小
我想允许重新调整dataGrid第0列的大小,该列包含SelectAll按钮和行标题- 图片取自-Wpf 如何支持在DataGrid中重新调整DataGridRowHeader列的大小,wpf,wpfdatagrid,styling,resize,datagridrowheader,Wpf,Wpfdatagrid,Styling,Resize,Datagridrowheader,我想允许重新调整dataGrid第0列的大小,该列包含SelectAll按钮和行标题- 图片取自- 试试这个试试这个 XAML: <tk:DataGrid x:Name="MyDataGrid" RowHeaderWidth="15" ItemsSource="{StaticResource MyData}" AutoGenerateColumns="False">
试试这个试试这个
XAML:
<tk:DataGrid x:Name="MyDataGrid"
RowHeaderWidth="15"
ItemsSource="{StaticResource MyData}"
AutoGenerateColumns="False">
<tk:DataGrid.Columns>
<tk:DataGridTextColumn Binding="{Binding ID}">
<tk:DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<DockPanel>
<GridSplitter
DockPanel.Dock="Left"
VerticalAlignment="Stretch"
HorizontalAlignment="Left" Width="2"
DragDelta="GridSplitter_DragDelta"/>
<TextBlock Text="ID" DockPanel.Dock="Right"/>
</DockPanel>
</DataTemplate>
</tk:DataGridTextColumn.HeaderTemplate>
</tk:DataGridTextColumn>
<tk:DataGridTextColumn Header="Name"
Binding="{Binding Name}">
</tk:DataGridTextColumn>
</tk:DataGrid.Columns>
</tk:DataGrid>
private void GridSplitter_DragDelta
(object sender,
System.Windows.Controls.Primitives.DragDeltaEventArgs e)
{
if (MyDataGrid.RowHeaderWidth + e.HorizontalChange >= 15)
{
MyDataGrid.RowHeaderWidth = MyDataGrid.RowHeaderWidth + e.HorizontalChange;
}
}
您可以覆盖
RowHeaderTemplate
,并将此网格拆分器停靠在右侧。但对我来说,将其停靠在第一列标题的左侧效果最好 GridViewColumn
是特定的,与WPF datagrid无关。
private void GridSplitter_DragDelta
(object sender,
System.Windows.Controls.Primitives.DragDeltaEventArgs e)
{
if (MyDataGrid.RowHeaderWidth + e.HorizontalChange >= 15)
{
MyDataGrid.RowHeaderWidth = MyDataGrid.RowHeaderWidth + e.HorizontalChange;
}
}