为什么WPF ListView主题不起作用?

为什么WPF ListView主题不起作用?,wpf,xaml,listview,themes,Wpf,Xaml,Listview,Themes,我不是平面设计师,但我想要一个好看的应用程序。我在互联网上搜索WPF主题,找到了这些主题: 主题可以与按钮、文本框和许多控件配合使用,但不能与ListView配合使用。 这就是我的示例ListView在没有主题的情况下的外观: 这就是ShinyBlue主题的外观(其他主题看起来类似): 我使用哪个主题并不重要(我下载了很多)。始终存在一个问题,即带有主题的ListView不显示项目。它只是显示一些粗线条,而不是项目。 代码如下: <Window xmlns=

我不是平面设计师,但我想要一个好看的应用程序。我在互联网上搜索WPF主题,找到了这些主题:

主题可以与按钮、文本框和许多控件配合使用,但不能与ListView配合使用。
这就是我的示例ListView在没有主题的情况下的外观:

这就是ShinyBlue主题的外观(其他主题看起来类似):

我使用哪个主题并不重要(我下载了很多)。始终存在一个问题,即带有主题的ListView不显示项目。它只是显示一些粗线条,而不是项目。
代码如下:

 <Window
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
            mc:Ignorable="d" x:Class="SahaWpfTheme20131.TestWindow1"
            Title="Test Window" Width="250" Height="200"
            >
            <Grid>
                 <ListView  x:Name="ListView1" HorizontalAlignment="Left"  
                        VerticalAlignment="Top" Width="200" Height="150">
                    <ListViewItem Content="Coffee"/>
                    <ListViewItem Content="Tea"/>
                    <ListViewItem Content="Orange Juice"/>
                    <ListViewItem Content="Milk"/>
                    <ListViewItem Content="Iced Tea"/>
                    <ListViewItem Content="Mango Shake"/>
                </ListView>
            </Grid>
        </Window>

我是做错了什么,还是很多主题都不适合ListView?我不明白为什么这不起作用


我在这里使用了一个ListView示例:

当我创建一个带有列和
项资源的
ListView时,它可以工作(但颜色混乱,可能是另一个问题):

我还让您的代码正常工作,但为此,我更改了
BureauBlack.xaml
中的
ListViewItem
模板(正在使用的主题):




现在将显示代码列表中的内容。但是对于你想做的事情,就像在评论中建议的那样,你可能想要一个
列表框
,而不是
列表视图

嗨,我刚刚尝试了几个主题,看看你的意思是什么似乎不起作用。尝试设置ItemTemplate,但效果不佳。ListBox似乎与主题相关,但您尝试过吗?谢谢您的工作和回答。根据您的建议,我将GridViewRowPresenter更改为ContentPresenter,现在项目显示正确。我使用上面的示例用尽可能少的代码来演示这个问题。在现实生活中,我的ListView代码更复杂,但如果显示它,则更难理解问题。你有一个好的来源,我可以了解GridViewRowPresenter、ContentPresenter和可能的类似问题吗?对不起,我没有来源,我自己也不太了解。问题基本上是主题使用的
GridViewRowPresenter
GridView
一起工作,而您原来的
ListView
没有使用
GridView
    <ListView  x:Name="ListView1" HorizontalAlignment="Left"  
                    VerticalAlignment="Top" Width="200" Height="150">
        <ListView.View>
            <GridView>
                <GridView.Columns>
                    <GridViewColumn DisplayMemberBinding="{Binding A}" />
                    <GridViewColumn DisplayMemberBinding="{Binding B}" />
                </GridView.Columns>
            </GridView>
        </ListView.View>
    </ListView>
        ListView1.ItemsSource = new[]
        {
            new { A = "qqq", B = "rrr" },
            new { A = "qqqq", B = "rrr" }
        };
<GridViewRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" />
<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" />