gpt4 book ai didi

c# - 如何控制整个 DataGridCell 背景而不仅仅是文本部分?

转载 作者:行者123 更新时间:2023-11-30 17:22:22 26 4
gpt4 key购买 nike

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

alt text

这不是很美观,我希望整个单元格都具有不同的颜色,而不仅仅是文本后面的部分。这是代码部分:

<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 对象以填充表格)。

最佳答案

在 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>

关于c# - 如何控制整个 DataGridCell 背景而不仅仅是文本部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2745608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com