0

我在 Windows 应用商店应用程序中使用 ListView。每当我开始在列表视图上滑动(使用模拟器点击模式)时,所有项目都会一起移动,如图所示。 在此处输入图像描述 如何禁用此操作事件?

4

1 回答 1

2

在您的ListView中,添加:

ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollMode="Disabled"

如果这还不够(这有时不适用于 MouseWheel 事件,因为事件仍然倾向于被捕获在 ListView 中,并且如果 ScrollViewer 内的列表特别大,我发现也倾向于发生),然后您需要创建一个自定义控件来专门忽略该事件,例如用于PointerWheelChanged.

public class CustomListView : ListView
{
    protected override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        var sv = this.GetTemplateChild("ScrollViewer") as UIElement;
        if (sv != null)
            sv.AddHandler(UIElement.PointerWheelChangedEvent, new PointerEventHandler(OnPointerWheelChanged), true);
    }

    private void OnPointerWheelChanged(object sender, PointerRoutedEventArgs e)
    {
        e.Handled = false;
    }
}

这将禁用鼠标滚轮在ListView. 您必须将 XAML 引用更改为您ListView<ListView>其中<namespace:ListView>创建namespaceListView 的命名空间。

于 2013-05-16T17:02:25.177 回答