gpt4 book ai didi

c# - 在 Windows Phone 8.1 上滚动时自动隐藏页眉和页脚

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:31 24 4
gpt4 key购买 nike

我需要有关在 Windows Phone 8.1 的 ListView 上隐藏滚动标题的帮助

我创建了隐藏标题的 SlideView 框架,但该框架的重点是汉堡菜单,没有任何文档。

有人有同样的需求并且知道其他框架或其他方法吗?

SlideView框架链接: https://slideview.codeplex.com/

谢谢!

最佳答案

您需要获取对 ListViewScrollViewer 的引用,您将在其上监听滚动行为。当 ScrollViewer 的 View 发生变化时,您只需隐藏 ListView 的页眉和页脚。

我创建了一个扩展 ListView 并处理页眉/页脚隐藏的示例类:

using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;

public class CustomListView : ListView
{
private object _header;
private object _footer;

protected override void OnApplyTemplate()
{
base.OnApplyTemplate();

Loaded += OnLoaded;
}

private void OnLoaded(object sender, RoutedEventArgs args)
{
Loaded -= OnLoaded;
var scrollViewer = FindChild<ScrollViewer>(this);
if(scrollViewer == null) return;

scrollViewer.ViewChanged += ScrollViewerOnViewChanged;
}

private void ScrollViewerOnViewChanged(object sender, ScrollViewerViewChangedEventArgs args)
{
if (Header != null)
{
_header = Header;
Header = null;
}

if (Footer != null)
{
_footer = Footer;
Footer = null;
}

// TODO start a timer which will restore the header and footer after a specified amount of time when this event is not fired
}

private static T FindChild<T>(DependencyObject parent) where T : DependencyObject
{
var childCount = VisualTreeHelper.GetChildrenCount(parent);
for (var i = 0; i < childCount; i++)
{
var elt = VisualTreeHelper.GetChild(parent, i);
if (elt is T) return (T)elt;
var result = FindChild<T>(elt);
if (result != null) return result;
}

return null;
}
}

我还没有测试过这段代码,但我希望能给你带来正确的方向。

关于c# - 在 Windows Phone 8.1 上滚动时自动隐藏页眉和页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35045695/

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