我不是平面设计师,但我想要一个漂亮的应用程序。我在互联网上搜索了WPF主题,我发现了这些:
https://visualstudiogallery.msdn.microsoft.com/30e8b37d-01a0-4749-abcb-a5d7631e7646
主题适用于按钮和文本框以及许多控件,但不适用于ListView
这是我的示例ListView在没有主题的情况下的外观:
这就是它与Theme ShinyBlue的外观(其他主题看起来相似):
我使用哪个主题(我下载了很多)并不重要。始终存在ListView with Theme不显示项目的问题。它只显示一些粗线而不是项目
这是代码:
<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示例:http://www.c-sharpcorner.com/uploadfile/mahesh/listview-in-wpf/
答案 0 :(得分:2)
当我使用列和ListView
创建ItemsSource
时,它可以正常工作(但颜色混乱,可能是另一个问题):
<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" }
};
我也让您的代码正常工作,但为此我更改了ListViewItem
中的BureauBlack.xaml
模板(正在使用的主题):
<GridViewRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" />
到
<ContentPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Margin="0,2,0,2" VerticalAlignment="Stretch" />
现在显示代码列表中的内容。但是对于您尝试做的事情,如评论中建议的那样,您可能需要ListBox
,而不是ListView
。