【问题标题】:How to control the whole DataGridCell background and not just the text part?如何控制整个 DataGridCell 背景而不仅仅是文本部分?
【发布时间】:2010-04-30 15:22:07
【问题描述】:

我正在尝试根据其值有条件地控制列中的 DataGrid 单元格背景。不幸的是,我得到了这样的东西:

这不是很美观,我想让整个单元格用不同的颜色,而不仅仅是文本后面的部分。这是代码部分:

<DataGridTextColumn
    Binding="{Binding Path=PrivateMemorySize, StringFormat='#,##0'}" 
    Header="Memory Size" >
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="{x:Type TextBlock}">
            <Setter Property="HorizontalAlignment" Value="Right" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding Path=PrivateMemorySize,
                            Converter={StaticResource isLarge}, 
                            ConverterParameter=20000000}" Value="true">
                    <Setter Property="Background" Value="Yellow" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>

isLarge只是一个转换器,当单元格值大于参数时返回true

如果我为 DataGridCell 目标定义一个样式,结果是一样的。

知道什么地方出了问题吗?我没有使用任何花哨的东西,只是使用默认的 DataGrid(在此示例中链接到 CLR 对象以填充表格)。

【问题讨论】:

    标签: c# wpf xaml datagrid


    【解决方案1】:

    在 TextBlock 的样式中,将 Horizo​​ntalAlignment 设置为 Stretch,并将 TextAignment 设置为 Right:

        <Style TargetType="{x:Type TextBlock}"> 
            <Setter Property="HorizontalAlignment" Value="Stretch" />
            <Setter Property="TextAlignment" Value="Right" /> 
            <Style.Triggers> 
                <DataTrigger Binding="{Binding Path=PrivateMemorySize, 
                            Converter={StaticResource isLarge},  
                            ConverterParameter=20000000}" Value="true"> 
                    <Setter Property="Background" Value="Yellow" /> 
                </DataTrigger> 
            </Style.Triggers> 
        </Style>
    

    【讨论】:

    • 好的,从你的回答我现在明白为什么它不起作用了。我仍然必须添加 &lt;Setter Property="Margin" Value="-1" /&gt; 来抑制边框,它工作得很好,谢谢!
    猜你喜欢
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 2021-12-18
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    相关资源
    最近更新 更多