Windows Vista和Windows XP下WPF列表视图的外观不同
在WPF应用程序中,我有一个ListView:Windows Vista和Windows XP下WPF列表视图的外观不同,wpf,user-interface,listview,windows-vista,windows-xp,Wpf,User Interface,Listview,Windows Vista,Windows Xp,在WPF应用程序中,我有一个ListView: <ListView Name="ItemSelList" ItemsSource="{Binding ItemColl}" SelectionChanged="ItemSelList_SelectionChanged"> <ListView.View> <GridView> <GridViewColumn Header="Date" Width="90" DisplayMembe
<ListView Name="ItemSelList" ItemsSource="{Binding ItemColl}" SelectionChanged="ItemSelList_SelectionChanged">
<ListView.View>
<GridView>
<GridViewColumn Header="Date" Width="90" DisplayMemberBinding="{Binding Date}"/>
<GridViewColumn Header="Time" Width="90" DisplayMemberBinding="{Binding Time}"/>
<GridViewColumn Header="Description" Width="250" DisplayMemberBinding="{Binding Description}"/>
</GridView>
</ListView.View>
</ListView>
在Windows Vista下运行应用程序时,一切正常。在Windows XP下运行时-当用户将鼠标悬停在ListView行上时,ListView行的默认字体大小太小,并且ListView行的颜色不会改变
如何使Windows XP下的ListView外观与Vista下的相同?这是由于WPF为两个操作系统选择了不同的主题。主题是基于操作系统级别的默认样式。Vista为您提供Aero主题,而Windows XP为您提供Luna系列主题 XP可能无法实现Aero主题的所有视觉浮华,而Luna主题在Vista和Windows7中可能显得低调,但您可以用简单的样式覆盖该主题。只需为ListView定义一个完全指定所需外观的样式。我认为(但不确定)Expression Blend可以为您提取主题信息 看起来您还可以覆盖WPF为您选择的主题(尽管我自己还没有尝试过)
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
如果只想重新编排一个ListView,我会将资源字典合并到ListView本身或直接的父元素中。这是因为WPF为两个操作系统选择了不同的主题。主题是基于操作系统级别的默认样式。Vista为您提供Aero主题,而Windows XP为您提供Luna系列主题 XP可能无法实现Aero主题的所有视觉浮华,而Luna主题在Vista和Windows7中可能显得低调,但您可以用简单的样式覆盖该主题。只需为ListView定义一个完全指定所需外观的样式。我认为(但不确定)Expression Blend可以为您提取主题信息 看起来您还可以覆盖WPF为您选择的主题(尽管我自己还没有尝试过)
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>