我试图激活或实施基本上有两件事:
1。单击背景时清除选择:
通常,当单击列表视图类型控件(例如Windows资源管理器)的空白区域时,任何选定的项目都将被取消选中。在多重或扩展选择模式下,这种情况不会发生。我是否必须手动处理鼠标单击事件以清除选择,或者它是否可能没有按预期运行,因为我已将背景应用于控件?
2。具有自动滚动的选择矩形:
在将我的应用程序移植到WPF之前,标准的WinForms列表视图允许我拖动一个选择矩形,它将选择它相交的任何项目。如果在任何方向上滚动出视图的项目,在该方向上拖动将导致控件在拖动鼠标时自动滚动到该区域,因此我可以选择不在视图中的项目。 WPF ListView是否实现了此功能,或者我将不得不自己实现它?有人在本页的评论中发布了一个涉及到测试的非平凡实现(http://social.msdn.microsoft.com/Forums/vstudio/en-US/191af722-e32b-4e6d-a00b-9ad2b53ea3b9/listview-dragging-a-selection-box-around-items?forum=wpf),但它甚至不支持自动滚动,我很难相信微软只是将此功能用完了。
答案 0 :(得分:-2)
Really ListView没有默认外观,您必须使用触发器设置甚至基本选择 哇,这个颜色并显示没有单一样式或触发器的SelectedIndex 全部在XAML
<Window.Resources>
<sys:String x:Key="MyString">Hello</sys:String>
<x:Array x:Key="MyStringArray" Type="sys:String">
<sys:String>Hello</sys:String>
<sys:String>World</sys:String>
<sys:String>Continent</sys:String>
<sys:String>Universe</sys:String>
</x:Array>
</Window.Resources>
<Grid>
<StackPanel Orientation="Vertical">
<ListView ItemsSource="{StaticResource MyStringArray}" x:Name="lv" SelectionMode="Single" LostFocus="lv_LostFocus">
</ListView>
<TextBlock Text="{Binding ElementName=lv, Path=SelectedIndex}" />
<Button Content="Take Focus"/>
</StackPanel>
</Grid>
private void lv_LostFocus(object sender, RoutedEventArgs e)
{
lv.SelectedIndex = -1;
}