gpt4 book ai didi

xaml - 如何检测 ScrollViewer 是否超出其可用范围

转载 作者:行者123 更新时间:2023-12-02 01:34:32 25 4
gpt4 key购买 nike

检测 ScrollViewer 何时位于其顶部或底部很容易,但我想检测用户何时进一步拉动 ScrollViewer,超过其限制,以及顶部或底部出现一些空白间距。您猜对了,我想实现类似于“拉动刷新”的功能。

VerticalOffset 没有改变,ViewChanging 或 ViewChanged 事件没有触发,我看不到任何变换对象在子元素上发生变化。我所知道的是,似乎向下移动的是 ScrollContentPresenter 中的 ItemsPresenter。

最佳答案

我有一个非常适合缩放/缩放的解决方案(拉出去某处成语)但我不确定如何将它应用到翻译成语(也许是因为我现在只是累了)。

我把它写下来,以防有人能找到一种巧妙的方法来为翻译(拉动刷新)问题找到类似的解决方案。

 // setup code. I do this when I load content into the scroll viewer initially

myScrollView.MinZoomFactor = desiredMinZoom * 0.4f;
myScrollView.ZoomSnapPoints.Clear();
myScrollView.ZoomSnapPoints.Add((float) desiredMinZoom );

// ...

private void myScrollView_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e)
{
if (e.NextView.ZoomFactor < myScrollView.ZoomSnapPoints.First())
myScrollView.ZoomSnapPointsType = SnapPointsType.Mandatory;
else
myScrollView.ZoomSnapPointsType = SnapPointsType.Optional;

if ( e.NextView.ZoomFactor == myScrollView.MinZoomFactor )
{
VisualStateManager.GoToState(this, "GoSomewhere", true);
bookView.ZoomToFactor( myScrollView.MinZoomFactor );
}

}

此代码的行为就好像 MinZoom 因子下的任何东西实际上都在拉伸(stretch) Canvas (因为它只是在您松开时快速返回),但是一旦缩放回到“绿色区域”,强制对齐点就会被删除。

它完全按照人们的意愿工作。

关于xaml - 如何检测 ScrollViewer 是否超出其可用范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32013433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com