我将从DataGrid Styles and Templates的文档开始。
注意看起来像这样的模板部分
<Grid Grid.Column="1"
Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding NonFrozenColumnsViewportHorizontalOffset,
RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ScrollBar x:Name="PART_HorizontalScrollBar"
Grid.Column="1"
Orientation="Horizontal"
ViewportSize="{TemplateBinding ViewportWidth}"
Maximum="{TemplateBinding ScrollableWidth}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
Value="{Binding HorizontalOffset, Mode=OneWay,
RelativeSource={RelativeSource TemplatedParent}}"/>
</Grid>
此部分定义 DataGrid 中的底部滚动条区域。注意与 NonFrozenColumnsViewportHorizontalOffset 的绑定——该值决定了左侧空白区域的宽度。
您可以将整个 DataGrid 模板复制到项目中的应用程序资源中的样式中。然后,插入您自己命名的水平 StackPanel,其中 Grid.Column="0"(ScrollBar 的兄弟),然后您可以添加自己的子按钮、文本等作为新 StackPanel 的子项。