在列表框中应用径向渐变效果

时间:2013-10-06 15:50:39

标签: c# wpf listbox

如何将径向渐变效果应用于选定的列表框项?

e.g。请查看左侧列表框: enter image description here

我创建了RadialGradientBrush,如下所示:

<RadialGradientBrush GradientOrigin="0.22,0.372">
   <RadialGradientBrush.RelativeTransform>
        <TransformGroup>
              <ScaleTransform CenterX="0.1" CenterY="0.55" ScaleX="4" ScaleY="2"/>
              <TranslateTransform X="0.45" Y="0.05"/>
        </TransformGroup>
   </RadialGradientBrush.RelativeTransform>
   <GradientStop Offset="1" Color="#00000000"/>
   <GradientStop Color="#FFE8E8E8"/>
</RadialGradientBrush>

1 个答案:

答案 0 :(得分:0)

编辑:最初误读了问题,更新了答案。

实现您所获得结果的一种方法是使用您描述的SystemColors.HighlightBrushKey重新定义ListBox Brush。然后,此Brush将用于突出显示,例如:

<ListBox>
    <ListBox.Style>
        <Style TargetType="{x:Type ListBox}">
            <Style.Resources>
            <RadialGradientBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" GradientOrigin="0.22,0.372">
                    <RadialGradientBrush.RelativeTransform>
                        <TransformGroup>
                            <ScaleTransform CenterX="0.1" CenterY="0.55" ScaleX="4" ScaleY="2"/>
                            <TranslateTransform X="0.45" Y="0.05"/>
                        </TransformGroup>
                    </RadialGradientBrush.RelativeTransform>
                    <GradientStop Offset="1" Color="#00000000"/>
                    <GradientStop Color="#FFE8E8E8"/>
                </RadialGradientBrush>
            </Style.Resources>
        </Style>
    </ListBox.Style>
</ListBox>