如何使列表框透明,但在WPF中列表框项目不透明?

时间:2009-11-01 16:39:34

标签: .net wpf listbox listboxitem

我正在尝试在WPF应用程序中创建透明的ListBox。我希望ListBox完全透明,因此背景图像可以在ListBox“后面”显示。但是,我希望我的ListBox项目完全不透明,也就是说,它们位于背景图像之上。

有谁知道我怎么做到这一点?

提前Thanx!

1 个答案:

答案 0 :(得分:23)

当然,就像将ListBox上的Background和BorderBrush属性设置为Transparent,然后为ListBoxItems设置Background一样简单:

<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>

注意:我在ListBoxItems中添加了一个边距,只是为了说明ListBoxItems之间的间距将一直显示到周围的StackPanel的红色背景。