我在WPF中有一个ListView,我的问题是如果一个项目部分显示并且我单击项目,列表将自动滚动,因此整个项目将可见。
如何禁用此自动滚动功能?
谢谢
有同样的问题,我发现了一个问题:)
在 Xaml 中,您使用此 EventSetter 为 ListViewItem 定义样式:
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<EventSetter Event="RequestBringIntoView" Handler="ProjectListView_OnRequestBringIntoView"/>
</Style>
</ListView.ItemContainerStyle>
在后面的代码中:
private void ProjectListView_OnRequestBringIntoView(object sender, RequestBringIntoViewEventArgs e)
{
e.Handled = true;
}
希望这对你也有用:)
我找到了解决方法,我的 ListView 正在 MVVM 中显示照片项目
private void lv_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
var p=e.OriginalSource as FrameworkElement;
if (p != null && p.DataContext is **Photo**)
{
lv.SelectedItem = p.DataContext;
e.Handled = true;
}
}
ListView 的默认行为BringIntoView()
是点击后调用。您可以将事件处理程序添加到PreviewMouseDown
event 并通过 set 处理它e.Handled = true;
。
设置ScrollViewer.VerticalScrollBarVisibility="Auto"
列表视图有帮助。