如果您通过拖动 ColumnHeader 重新排列 Datagrid 的列,您将获得一个指示器,该指示器显示该列的放置位置。你如何设计这个指标?
问问题
1265 次
1 回答
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>
看看您是否可以覆盖控制模板以满足您的需要。
于 2013-05-29T11:42:14.147 回答