我在 Windows 应用商店应用程序中使用 ListView。每当我开始在列表视图上滑动(使用模拟器点击模式)时,所有项目都会一起移动,如图所示。 如何禁用此操作事件?
问问题
873 次
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>
创建namespace
ListView 的命名空间。
于 2013-05-16T17:02:25.177 回答