wpf ListViewItem 怎么设置圆角并有阴影效果,请给出 详细的 xaml代码

发布时间 2023-09-28 12:36:05作者: simadi

以下是一段详细的 XAML 代码示例,展示了如何为 WPF 的 ListViewItem 设置圆角和阴影效果:

<ListView>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListViewItem">
                        <Border Background="#EFEFEF" CornerRadius="10" Margin="5"
                                BorderBrush="#CCCCCC" BorderThickness="1">
                            <Grid>
                                <!-- 设置阴影效果 -->
                                <Border CornerRadius="10" Background="White"
                                        BorderBrush="Transparent" BorderThickness="1"
                                        Margin="3"
                                        Effect="{DynamicResource ShadowEffect}">
                                    <ContentPresenter/>
                                </Border>
                            </Grid>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListView.ItemContainerStyle>
    <ListViewItem Content="Item 1"/>
    <ListViewItem Content="Item 2"/>
    <ListViewItem Content="Item 3"/>
</ListView>

在上述代码中,我们为 ListViewItem 定义了一个自定义的 ItemContainerStyle。在这个样式中,我们使用 ControlTemplate 来修改 ListViewItem 的外观。

在 ControlTemplate 内部,我们将 ListViewItem 包装在一个 Border 中,并设置 Background、CornerRadius、Margin、BorderBrush 和 BorderThickness 来实现圆角和边框效果。

然后,在 Border 内部,我们使用了一个 Grid 和另外一个 Border 来创建阴影效果。将 ContentPresenter 放置在内部 Border 中,这样 ListViewItem 的内容就会显示在这个 Border 内。

你还可以通过定义一个效果资源来实现阴影效果,如上述代码中的 ShadowEffect。你可以调整效果的属性以适应你的需求。