0
我正在定制一个wpf数据网格,我遇到的问题是我已经在下面的Row样式中设置了RowStyle和RowDetails模板,我只是将Row Background设置为一些橙色渐变刷:Datagrid RowDetailsTemplate Stretch RowBackground渐变画笔
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Background" Value="White" />
<Style.Triggers>
...
<Trigger Property="IsSelected" Value="True">
<Setter Property="Height" Value="24" />
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1" Opacity="0.9">
<GradientStop Color="White" Offset="0.0" />
<GradientStop Color="Orange" Offset="0.2" />
<GradientStop Color="#FF4500" Offset="0.8" />
<GradientStop Color="#EE4000" Offset="0.9"/>
<GradientStop Color="White" Offset="1.0" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
这工作都正常,直到我决定设置RowDetailsTemplate,当其在DataGrid中选择该行,这将导致渐变画笔拉伸到适合现在的详细信息部分,直到你只能看到顶部褪色的橙色。现在我假设这是因为行详细信息模板是行的一部分。
但是,如果有人离开,我会徘徊,我可以阻止这种情况发生?
一个解决方法是设置单元格样式,但是这会导致新问题,例如不是整行被着色,即在网格的末端有一些空的空间,当您设置CellStyle。
然而,我之前试过,它只能部分解决问题,因为行的渐变刷仍然伸展,现在发生的所有情况是,网格将具有不同的彩色背景。换句话说,在行本身,你仍然只能看到拉伸的颜色。 – Heinrich
我在我的测试应用程序中尝试了相同的方法,它按照您的期望工作。我有RowDetailTemplateSelector类,用于为各种类型的数据行定义模板并为模板分配了特定的颜色。除此之外,我还有Datagrid RowStyle,其中我添加了触发器,用于在某些属性为true时更改行背景颜色。 –
但是,您是否使用渐变画笔进行了尝试,如果您使用单一颜色的外观很好,那么当您使用渐变画笔发现问题时 – Heinrich