繁体   English   中英

WPF DataGrid 标题文本背景填充

[英]WPF DataGrid Header Text Background Fill

我无法在 DataGrid 中填充标题背景,如下图所示。 我尝试拉伸标题和摘要文本以填充标题空间等。摘要世界上方有一个白色背景(这适用于网格中的每个标题)。 如何摆脱空白?

在此处输入图片说明

                    <DataGrid x:Name="DisplayGrid" Grid.Row="2" IsReadOnly="False" SelectionMode="Single"  SelectionUnit="Cell" CanUserAddRows="False" CanUserDeleteRows="False" CanUserSortColumns="False" ScrollViewer.VerticalScrollBarVisibility="Visible"
                      AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Top" >

                    <DataGrid.ColumnHeaderStyle>
                        <Style TargetType="DataGridColumnHeader">
                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                            <Setter Property="VerticalContentAlignment" Value="Stretch" />
                            <Setter Property="TextBlock.FontWeight" Value="Bold" />
                            <Setter Property="ContentTemplate">
                                <Setter.Value>
                                    <DataTemplate>
                                        <TextBlock TextWrapping="Wrap" Text="{Binding Mode=OneWay}" ></TextBlock>
                                    </DataTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </DataGrid.ColumnHeaderStyle>

和摘要列:

                            <DataGridTemplateColumn x:Name="SummaryTextBox" Header="Summary" IsReadOnly="True" MinWidth="100" Width="*" MaxWidth="450">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock 
                                        Text="{Binding Summary}" 
                                        TextWrapping="Wrap"
                                        TextAlignment="Justify"
                                        VerticalAlignment="Stretch"
                                        />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>

编辑 1:添加背景从标题中删除网格线。 之后看起来不太好(也使用不同的背景颜色)。

<Setter Property="Background" Value="Gray"></Setter>

在此处输入图片说明

        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="DataGridColumnHeader">
                <Setter Property="HorizontalContentAlignment" Value="Center" />
                <Setter Property="VerticalContentAlignment" Value="Stretch" />
                <Setter Property="TextBlock.FontWeight" Value="Bold" />
                <Setter Property="Background" Value="Gray"></Setter>
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TextBlock TextWrapping="Wrap" Text="{Binding Mode=OneWay}" ></TextBlock>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </DataGrid.ColumnHeaderStyle>

是的,

白色是因为列标题的默认样式,因此您必须在样式中明确设置背景。

<Setter Property="Background" Value="LightGray"/>

如果您想要与数据部分不同的外观,您可以使用渐变颜色或阴影效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM