0

我正在自定义 wpf 数据网格,我遇到的问题是我已经设置了 RowStyle 和 RowDetails 模板,在下面的 Row 样式中,我只是将 Row Background 设置为一些橙色渐变画笔:

<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 中选择行时,它会导致渐变画笔拉伸到现在也适合详细信息部分,直到你只看到顶部褪色的橙色. 现在我假设这种情况正在发生,因为行详细信息模板是行的一部分。
但是我在徘徊,如果有远离我可以阻止这种情况发生吗?
一种解决方法是设置单元格样式,但这会导致新问题,例如不是整行都着色,即在网格的末尾有一些空白空间,当您设置单元格样式时,这不会被填充。

4

1 回答 1

0

您可以在 RowDetailsTemplate 中显式设置 ContentControl 的背景颜色。

<DataGrid.RowDetailsTemplate>           <DataTemplate>
              <Border Name="RowDetailsTemplateBorder" BorderBrush="#3B73B9" BorderThickness="2" Margin="1" >
                 <Grid Name="RowDetailsTemplateGrid" Height="180" Background="White">
                          <Image Height="100" Source="{Binding Image}" />
    </Grid>
               </Border>
        </DataTemplate>
    </DataGrid.RowDetailsTemplate>
于 2013-10-29T06:45:17.173 回答