c# - 滑动浏览以前的图像
问题描述
我有一个使用 VS2017 在 Xamarin 中开发的应用程序。我有一个用户用来添加图像的页面。
从屏幕截图中可以看出,用户单击按钮每天最多添加六张图像。
我想要做的是从左向右滑动以动态地回到过去。这意味着我将通过一次滑动显示昨天的图像,然后通过另一次滑动显示前一天的图像,依此类推。
我正在考虑使用轮播,但如果我有几个月的图像,那将是巨大的。我已经设法通过使用日期时间选择器让它工作,但客户想要刷卡!!!
在研究和寻找解决方案方面,我真的不知道从哪里开始,所以任何指针都会受到很大的欢迎。
总而言之,我希望能够通过从左向右滑动然后通过从右向左滑动向前移动来回到过去。
TIA
解决方案
您可以使用 Swipe 声明自定义视图。
public class SwipeContainer : ContentView
{
public event EventHandler<SwipedEventArgs> Swipe;
public SwipeContainer()
{
GestureRecognizers.Add(GetSwipeGestureRecognizer(SwipeDirection.Left));
GestureRecognizers.Add(GetSwipeGestureRecognizer(SwipeDirection.Right));
GestureRecognizers.Add(GetSwipeGestureRecognizer(SwipeDirection.Up));
GestureRecognizers.Add(GetSwipeGestureRecognizer(SwipeDirection.Down));
}
SwipeGestureRecognizer GetSwipeGestureRecognizer(SwipeDirection direction)
{
var swipe = new SwipeGestureRecognizer { Direction = direction };
swipe.Swiped += (sender, e) => Swipe?.Invoke(this, e);
return swipe;
}
}
然后在您的页面中:
<ContentPage ...>
<StackLayout>
<local:SwipeContainer Swipe="OnSwiped">
</local:SwipeContainer>
</StackLayout>
</ContentPage>
并在代码隐藏中处理 OnSwiped 事件:
void OnSwiped(object sender, SwipedEventArgs e)
{
switch (e.Direction)
{
case SwipeDirection.Left:
// Handle the swipe
break;
case SwipeDirection.Right:
// Handle the swipe
break;
case SwipeDirection.Up:
// Handle the swipe
break;
case SwipeDirection.Down:
// Handle the swipe
break;
}
}
推荐阅读
- flutter - 错误:在颤振中找不到类型“ui.TextHeightBehavior”
- mongodb - 猫鼬:如果值为“”,则不更新,否则更新
- aws-lambda - Amazon AWS Cognito Lambda 触发器无法使用简单的 PHP BREF 函数
- python - 只想在我的主页上显示第一个最新帖子
- c# - BotFramework v4 .NET SDK:发送打字指示器无法正常工作
- android-studio - Android Studio 在首选项中添加颤振 sdk 路径
- extjs - 如何在图表中为 EXTJS 6.5.x 中的 x 类别字段标签添加工具提示
- python - 两个 Docker 容器不相互通信
- sql-server - Set-SqlAuthenticationMode - 无法加载文件或程序集
- c++ - 如何创建一个二维数组,其中所有行的大小都不相同,并且用户将指定各个行将具有多少个元素?