ListBox中的WPF DropShadowEffect

时间:2010-12-30 07:10:41

标签: wpf

基本上,我有一个列表框,其中包含一组listboxitem(水平堆叠)。在选定的listboxitem上,将会有一个应用于listboxitem边框的drophadoweffect。

我现在遇到的问题是左侧的drophadopeffect覆盖了左侧listboxitem(顶部)。这对我来说很好,但是listboxitem右侧的drophadoweffect由(右下方)listboxitem覆盖。

有没有办法让它们保持一致?这样双方的投影效果就会出现在左右列表框的顶部。

如果您需要更多信息,请与我们联系。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

对于所选项目,您需要将其Panel.ZIndex附加属性设置为1.如果您正在重新模板化ListBoxItem,则可以在xaml中执行以下操作:

<ControlTemplate TargetType=”ListBoxItem”>
    <Border x:Name=”Root” BorderBrush=”#bdc1a3” BorderThickness=”1” CornerRadius=”5”     Background=”{StaticResource NormalBrush}”>
        <ContentPresenter Content=”{TemplateBinding Content}” ContentTemplate=”{TemplateBinding  ContentTemplate}” HorizontalAlignment=”Center” VerticalAlignment=”Center” />
    </Border>
    <ControlTemplate.Triggers>
        <Trigger Property=”IsSelected” Value=”True”>
            <Setter Property=”Panel.ZIndex” Value=”1” />
            <Setter Property=”BorderBrush” Value=”#2a849d” TargetName=”Root” />
            <Setter Property=”Background” Value=”{StaticResource SelectedBrush}” TargetName=”Root” />
    </ControlTemplate.Triggers>
</ControlTemplate>