如果通过拖动列标题重新排序数据网格的列,则会得到一个指示器,显示列的放置位置。你怎么设计这个指标?
答案 0 :(得分:3)
这就是Aero主题对指标的影响。我相信你正在考虑这个风格。
<Style x:Key="{x:Static DataGridColumnHeader.ColumnHeaderDropSeparatorStyleKey}" TargetType="{x:Type Separator}">
<Setter Property="Background" Value="#FF000080" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
以下是msdn
的链接 修改强>
我认为使用DataGrid的 DragIndicatorStyle 和 DropLocationIndicatorStyle 属性来设置拖放标题控件的样式有一种更简单的方法。我测试了以下代码,datagrid选择了样式。
<Window.Resources>
<Style x:Key="DragHeaderStyle" TargetType="{x:Type Control}">
<Setter Property="BorderBrush" Value="Red"/>
</Style>
<Style x:Key="DropHeaderStyle" TargetType="{x:Type Separator}">
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="5"/>
</Style>
</Window.Resources>
<DataGrid DragIndicatorStyle="{StaticResource DragHeaderStyle}"
DropLocationIndicatorStyle="{StaticResource DropHeaderStyle}"
...>
</DataGrid>
查看您是否可以覆盖控制模板以满足您的需要。