Как я могу сделать список прозрачным, но элементы списка непрозрачными в WPF?

Я пытаюсь создать прозрачный ListBox в приложении WPF. Я хочу, чтобы ListBox был полностью прозрачным, поэтому фоновое изображение было видно «позади» ListBox. Однако я хочу, чтобы мои элементы ListBox были полностью непрозрачными, то есть они лежали поверх фонового изображения.

Кто-нибудь знает, как я могу это сделать?

Спасибо заранее!


person Tomas Vinter    schedule 01.11.2009    source источник
comment
Установите цвет фона для списка на прозрачный и примените стиль к элементам, где вы установили цвет фона на белый. Надеюсь, это работает   -  person Ilya Khaprov    schedule 01.11.2009


Ответы (1)


Конечно, это так же просто, как установить для свойств Background и BorderBrush в ListBox значение Transparent, а затем установить Background для ListBoxItems:

<StackPanel Background="Red">
    <ListBox Background="Transparent" BorderBrush="Transparent">
        <ListBox.Resources>
            <Style TargetType="{x:Type ListBoxItem}">
                <Setter Property="Background" Value="White" />
                <Setter Property="Margin" Value="1" />
            </Style>
        </ListBox.Resources>
        <ListBoxItem Content="First Item"/>
        <ListBoxItem Content="Secton Item"/>
    </ListBox>
</StackPanel>

ПРИМЕЧАНИЕ. Я добавил Margin к ListBoxItems только для того, чтобы продемонстрировать расстояние между ListBoxItems, которое будет отображаться на всем протяжении до окружающего красного фона StackPanel.

person Drew Marsh    schedule 01.11.2009
comment
это спасло мою проблему (+1) - person Singleton; 05.06.2016