如何避免 WPF 的线性渐变画笔中的色带
本文关键字:画笔 色带 渐变 线性 何避免 WPF | 更新日期: 2023-09-27 18:33:36
除了在软件中使用图像和抖动渐变(或弄乱为我做抖动的像素着色器)之外,我还能做些什么来避免使用 .NET 4.6.1 在 WPF 中的单色渐变中出现色带?
相关:有没有办法强制 WPF 在幕后使用 16bpc 颜色?
我发现的一种方法是将渐变添加到容器中,给它一个小的负边距,使其溢出一点,向渐变添加 BlurEffect,然后在父容器上打开 ClipToBounds。这样,以牺牲性能为代价,渐变会更均匀一些。
但是,根据您的用例,这可能不可行。
例:
<Grid Height="26" Margin="-5,0" ClipToBounds="True">
<Grid Margin="-5">
<Grid.Effect>
<BlurEffect Radius="6" />
</Grid.Effect>
<Grid.Background>
<LinearGradientBrush>
<GradientStop x:Name="GradientStop7" Color="Magenta" Offset="0.0" />
<GradientStop x:Name="GradientStop8" Color="DarkOrchid" Offset=".2" />
<GradientStop x:Name="GradientStop9" Color="Purple" Offset="1" />
</LinearGradientBrush>
</Grid.Background>
</Grid>
</Grid>
负渐变应等于模糊半径,使其在边缘上不会变得透明。