gpt4 book ai didi

c# - 使用文本阴影样式选择的 DataGrid 单元格?

转载 作者:行者123 更新时间:2023-11-30 21:08:18 24 4
gpt4 key购买 nike

我正在尝试在选中该行时向单元格文本添加文本阴影。

更新:

这是我现在拥有的:

<Style TargetType="{x:Type DataGridCell}">
<Setter Property="TextOptions.TextFormattingMode" Value="Display" />
<Setter Property="RenderOptions.ClearTypeHint" Value="Enabled" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Border Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<ContentPresenter x:Name="CellContent" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="CellContent" Property="TextOptions.TextFormattingMode" Value="Display" />
<Setter TargetName="CellContent" Property="RenderOptions.ClearTypeHint" Value="Enabled" />
<Setter TargetName="CellContent" Property="Effect">
<Setter.Value>
<DropShadowEffect ShadowDepth="2" BlurRadius="2" Color="Black" RenderingBias="Quality" />
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

它仅向文本添加阴影(正是我想要的)和选择行时(正是我想要的)。现在唯一的问题是我失去了子像素抗锯齿:

enter image description here

所选行是下面带有蓝色背景的行。它现在正在使用某种灰色抗锯齿,这使它看起来很糟糕。我尝试设置 RenderOptions.ClearTypeHint 但没有成功。如何启用它,使其看起来像没有选择的行一样清晰?

这是灰色抗锯齿在 100% 大小(模糊)下的样子:

enter image description here

最佳答案

单元格的背景使您无法看到效果。背景就这么设置了,不知道大家喜不喜欢这样的结果:

<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Background" Value="Transparent"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect ShadowDepth="2"
BlurRadius="2"
Color="Black"
RenderingBias="Quality"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>

编辑

也许这样更好,因为它给了你更多的控制权:

<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<ContentPresenter x:Name="CellContent"/>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="CellContent" Property="Effect">
<Setter.Value>
<DropShadowEffect ShadowDepth="2"
BlurRadius="2"
Color="Black"
RenderingBias="Quality"/>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

关于c# - 使用文本阴影样式选择的 DataGrid 单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9725005/

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