WPF DropShadowEffect в ListBox - PullRequest
       0

WPF DropShadowEffect в ListBox

1 голос
/ 30 декабря 2010

По сути, у меня есть список, который содержит набор элементов списка (сложены горизонтально). К выбранному элементу списка будет добавлен эффект отбрасывания тени к границе элемента списка.

Проблема, с которой я сталкиваюсь в данный момент, заключается в том, что дропшадопэффект с левой стороны охватывает (сверху) левый список. Это хорошо для меня, однако эффект drophadow на правой стороне элемента listbox покрыт (ниже) правым элементом listbox.

Есть ли способ сделать их последовательными? так что эффект дропшоу с обеих сторон будет отображаться в верхней части левого и правого элементов списка.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Любая помощь будет оценена.

1 Ответ

1 голос
/ 30 декабря 2010

Для выбранного элемента вам нужно установить его 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...