从docs:
有没有一种方法可以配置FlipView
控件为每个翻转触发SelectionChanged
?这种行为使实现分页变得有趣,因为如果用户足够快地翻转,则可以在添加更多项之前翻转到列表的末尾。
最佳答案
解决该问题的一种方法是扩展FlipView
并监视其ScrollViewer
。这是我所建议的快速样本。似乎可以在水平翻转 View 中使用(没有处理任何其他情况,也没有进行过多测试)。
public class FixedFlipView : FlipView {
public ScrollViewer ScrollViewer {
get;
private set;
}
protected override void OnApplyTemplate() {
base.OnApplyTemplate();
this.ScrollViewer = (ScrollViewer)this.GetTemplateChild("ScrollingHost");
this.ScrollViewer.ViewChanged += ScrollViewer_ViewChanged;
}
void ScrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e) {
var index = (int)this.ScrollViewer.HorizontalOffset - 2;
if (this.SelectedIndex != index) {
this.SelectedIndex = index;
}
}
}
注意事项:
SelectedIndex
属性,该属性引发SelectionChanged
事件,但它也很有可能还会做其他事情,因此在某些情况下可能是个问题。 关于xaml - FlipView SelectionChanged事件仅在触摸操作完成时发生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27411729/