.net 如何为DataGridRow和上一个的边框笔刷着色
我创建了一个自定义控件,继承自DataGrid。 我需要在鼠标结束时更改行的边框。简单 除了如果我设置了一个BorderThick 0 1 0 1,底部和顶部边框堆叠,看起来在一些边框上有2个高度。=> 为了避免这种情况,我设置了一个0 1的边界厚度,现在它变得复杂了。 因为我需要更改上一行或下一行的边框笔刷。并为第一个边框添加一个矩形 最后,我在自定义控件的MouseMove和MouseLeave事件中执行了此操作。它起作用了,但我觉得很脏 我想问一下,是否有人对如何做有其他想法?最好是100%xaml 谢谢 可以重叠边界。以下XAML的边界厚度为1,边距为0,0,0,-1时,它将与下一个重叠。但是这不能完全解决问题,因为行不在前面,因此ZIndex将设置为1 这将如下所示:.net 如何为DataGridRow和上一个的边框笔刷着色,.net,wpf,xaml,.net,Wpf,Xaml,我创建了一个自定义控件,继承自DataGrid。 我需要在鼠标结束时更改行的边框。简单 除了如果我设置了一个BorderThick 0 1 0 1,底部和顶部边框堆叠,看起来在一些边框上有2个高度。=> 为了避免这种情况,我设置了一个0 1的边界厚度,现在它变得复杂了。 因为我需要更改上一行或下一行的边框笔刷。并为第一个边框添加一个矩形 最后,我在自定义控件的MouseMove和MouseLeave事件中执行了此操作。它起作用了,但我觉得很脏 我想问一下,是否有人对如何做有其他想法?最好是100
这需要一些微调,具体取决于边界厚度,但我希望您了解这一概念。下一票是否有意见
<DataGrid ItemsSource="{Binding YOURSOURCE}" GridLinesVisibility="None">
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<!-- Line at the Top and Bottom -->
<Setter Property="BorderThickness" Value="0,1,0,1"/>
<!-- Idle Color -->
<Setter Property="BorderBrush" Value="Black"/>
<!-- Overlap Row with negative Margin -->
<Setter Property="Margin" Value="0,0,0,-1"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<!-- Bring to Front and change Line-Color -->
<Setter Property="Panel.ZIndex" Value="1" />
<Setter Property="BorderBrush" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>