手势滑动比较布满,手势滑动比较布满

我这里介绍的手势滑动场景是在拥有以ListView等控件为主的界面中,我这里介绍的手势滑动场景是在拥有以ListView等控件为主的界面中

率先在移动APP开辟中,手势滑动已经变为一个不可缺少的才具,无论大大小小的APP都供给持有手势滑动成效。在Android和iOS操作系统的应用软件中,手势滑动比较普遍。然则由于国内关于UWP应用的教程相比少,所以新的开采者在这1块也许达不到别的多少个平台的力量和规范。所以今菲律宾人在那边给大家介绍1种手势滑动的章程,希望和豪门交换调换。

首先在移动应用软件开垦中,手势滑动已经化为二个不可或缺的本事,无论大大小小的应用程式都亟待有所手势滑动功效。在Android和iOS操作系统的应用软件中,手势滑动相比广泛。然则由于国内有关UWP应用的课程相比少,所以新的开垦者在那壹块或然达不到任何七个阳台的工夫和专门的学业。所以今日笔者在那里给大家介绍一种手势滑动的点子,希望和大家交换沟通。

 

 

本人那里介绍的手势滑动场景是在具有以ListView等控件为主的分界面中,通过手势滑动来进展休斯敦菜单。有关ListView和SplitView的有关内容就不在那里1一介绍了。下边是功力的得以完成进程:

作者这边介绍的手势滑动场景是在具备以ListView等控件为主的界面中,通过手势滑动来开始展览达拉斯菜单。有关ListView和SplitView的连带内容就不在那里一一介绍了。下边是效益的贯彻进程:

一.第一改动Listview的ItemTemplate中的DataTemplate

一.率先更动Listview的ItemTemplate中的DataTemplate

        <DataTemplate x:Key="News_Without_Photo">
            <RelativePanel Padding="5,10,5,10" ManipulationMode="System,TranslateX">
                <TextBlock x:Name="news_title" Text="{Binding title}" TextWrapping="Wrap" TextTrimming="WordEllipsis" FontSize="17" FontWeight="Bold" RelativePanel.AlignTopWithPanel="True"></TextBlock>
            </RelativePanel>
        </DataTemplate>
        <DataTemplate x:Key="News_Without_Photo">
            <RelativePanel Padding="5,10,5,10" ManipulationMode="System,TranslateX">
                <TextBlock x:Name="news_title" Text="{Binding title}" TextWrapping="Wrap" TextTrimming="WordEllipsis" FontSize="17" FontWeight="Bold" RelativePanel.AlignTopWithPanel="True"></TextBlock>
            </RelativePanel>
        </DataTemplate>

在意:那里有1个最重要内容。因为ListView本人自带滑动格局,假如直接助长大家温馨的滑出手势会被ListView屏蔽掉。所以在这么些位置,小编在DataTemplate中放多个最外层的RelativePanel,也许您用一般的布局控件也能够。在那几个地方,ManipulationMode属性设置成“System,TranslateX”。那规范就搞定了那一个难点。

留意:那里有一个至关心珍贵要内容。因为ListView本人自带滑动情势,假诺直接抬高大家和睦的滑入手势会被ListView屏蔽掉。所以在这几个地点,小编在DataTemplate中放一个最外层的RelativePanel,可能您用一般的布局控件也能够。在那么些地方,ManipulationMode属性设置成“System,TranslateX”。那标准就一蹴而就了那么些主题材料。

 

 

二.编纂后台cs代码

二.编辑后台cs代码

        double x = 0;//用来接收手势水平滑动的长度

        public TravelListsPage()
        {
            this.InitializeComponent();
            ManipulationCompleted += The_ManipulationCompleted;//订阅手势滑动结束后的事件
            ManipulationDelta += The_ManipulationDelta;//订阅手势滑动事件
        }

        private void The_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)//手势滑动中
        {
            x += e.Delta.Translation.X;//将滑动的值赋给x
        }

        private void The_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)//手势滑动结束
        {
            if (x > 200)//判断滑动的距离是否符合条件
            {
                splitview.IsPaneOpen = true;//打开汉堡菜单
            }
        }
        double x = 0;//用来接收手势水平滑动的长度

        public TravelListsPage()
        {
            this.InitializeComponent();
            ManipulationCompleted += The_ManipulationCompleted;//订阅手势滑动结束后的事件
            ManipulationDelta += The_ManipulationDelta;//订阅手势滑动事件
        }

        private void The_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)//手势滑动中
        {
            x += e.Delta.Translation.X;//将滑动的值赋给x
        }

        private void The_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)//手势滑动结束
        {
            if (x > 200)//判断滑动的距离是否符合条件
            {
                splitview.IsPaneOpen = true;//打开汉堡菜单
            }
        }

在此地,我们经过订阅了轩然大波ManipulationDelta和事件ManipulationCompleted的事件处理方法来成功手势滑动张开亚特兰洲大学菜单。基本的落成进度一点也不细略。首先在类中定义3个字段x,那几个字段用来接受指针或手指在显示器上的位移量。然后当手势滑动初叶时,The_ManipulationDelta方法将位移量不断赋值给x。在手势滑动截止之后,The_ManipulationCompleted方法开始展览滑动进度的分析判定。当判定当前的手势操作可以张开罗马菜单时,SplitView的IsPaneOpen属性为true。至此,整个手势滑动张开波士顿菜单的经过结束。

在此处,大家通过订阅了轩然大波ManipulationDelta和事件ManipulationCompleted的事件管理方法来完毕手势滑动张开波士顿菜单。基本的落到实处进程一点也不细略。首先在类中定义3个字段x,那几个字段用来接收指针或指尖在显示屏上的位移量。然后当手势滑动开首时,The_ManipulationDelta方法将位移量不断赋值给x。在手势滑动甘休现在,The_ManipulationCompleted方法举行滑动进程的分析判断。当判别当前的手势操作能够张开埃及开罗菜单时,SplitView的IsPaneOpen属性为true。至此,整个手势滑动张开开普敦菜单的长河甘休。

假若咱们有何样好的主张只怕以为本人的思绪有所不足,接待批评,多谢。

假定我们有何样好的主见恐怕感到作者的思绪有所不足,迎接钻探,谢谢。