UWP滑動後退

2021-09-07 14:56:15 字數 2935 閱讀 2523

原文:

uwp滑動後退

1.方便了單手操作。在當今大屏手機占有率越來越高的趨勢下,簡潔方便的單手操作模式是很有必要的。

本文github位址

手勢操作有三個關鍵狀態:操作開始時、操作進行時、操作結束時。

1.操作開始時

在使用者開始手勢操作的那一刻,這時候主要進行一些初始化操作。 

2.操作進行時

這時候不斷的計算使用者手勢相關的各種資料,方便後續處理。 

3.操作結束時

這時候就是自由發揮了,你可以處理一些事件、功能。比如:頁面後退、顯示刪除按鈕等等 。

有一點需要注意:使用者可能並不是完全的水平或者豎直滑動,所以最好加上速度和位移長度雙重判斷處理。

在旺信uwp專案中,我們使用了滑動手勢來進行頁面的後退。下面我就以這個例子進行剖析。因為每個頁面都需要用到手勢,所以最好建乙個basepage類,然後讓所有頁面繼承這個類。

1.相關事件新增

在basepage的建構函式中新增相關事件和手勢監聽的模式

private

translatetransform _tt;

this.manipulationmode =manipulationmodes.translatex;

this.manipulationcompleted +=basepage_manipulationcompleted;

this.manipulationdelta +=basepage_manipulationdelta;

_tt = this.rendertransform as

translatetransform;

if (_tt == null

)

this.rendertransform = _tt = new translatetransform();

2.手勢操作時的處理 

private

void basepage_manipulationdelta(object

sender, manipulationdeltaroutedeventargs e)

_tt.x +=e.delta.translation.x;

}

3.手勢結束時的操作

private

void basepage_manipulationcompleted(object

sender, manipulationcompletedroutedeventargs e)

action = 0

;

if (delta > 0

) to = this

.actualwidth;

else

if (delta < 0

)

return

;

var s = new

storyboard();

var doubleanimation = new doubleanimation() ;

doubleanimation.completed +=doubleanimation_completed;

storyboard.settarget(doubleanimation, _tt);

storyboard.settargetproperty(doubleanimation, "x

");s.children.add(doubleanimation);

s.begin();

}

4.結束後的動畫效果

private

void doubleanimation_completed(object sender, object

e)

這裡為了視覺上的美觀,在手勢結束後增加了一段動畫效果。使頁面間的跳轉顯得不那麼生硬。

方案一:在datatemplate上下手,加乙個stackpanel,然後給他來個

manipulationmode="system,translatex"

"

1" scrollviewer.horizontalscrollbarvisibility="

hidden

" scrollviewer.verticalscrollbarvisibility="

hidden

">

"vertical

" manipulationmode="

system,translatex

" >

"control_blacklist

" itemssource="

" grid.row="

1">

"vertical

" manipulationmode="

system,translatex

" >

"white

">

"1" style="

" verticalalignment="

bottom

" />

方案二:這種方式和上邊那種一樣,只不過是統一處理了

"

itemspanel

">

"vertical

" background="

transparent

" manipulationmode="

system,translatex

"/>

UWP滑動後退

1.方便了單手操作。在當今大屏手機占有率越來越高的趨勢下,簡潔方便的單手操作模式是很有必要的。本文github位址 手勢操作有三個關鍵狀態 操作開始時 操作進行時 操作結束時。1.操作開始時 在使用者開始手勢操作的那一刻,這時候主要進行一些初始化操作。2.操作進行時 這時候不斷的計算使用者手勢相關的...

UWP開發 處理手機後退事件

眾所周知,uwp程式是一套 可以run在不同的平台上。但是不同的裝置肯定有其獨特之處,所以針對這些獨特之處,必須用 獨特的 來處理。所以微軟提供了一系列的拓展類庫來實現這種特殊處理。如上圖所示,紅框中的便是拓展程式集。當然實現手機後後退鍵處理,我們就需要把mobile對應的程式集新增到我們的專案中去...

3 4 3 多幀滑動視窗和後退N幀協議(GBN)

在後退n幀式arq中,傳送方不需要在收到上一幀的ack後才能開始傳送下一幀,而是可以連續傳送幀。當接受方檢測出失序的資訊幀後,要求傳送方重發最後乙個正確接受的資訊幀之後的所有未確認的幀 或者當傳送方傳送了n個幀後,若發現該n個幀的前乙個幀在計時器超時後仍未返回其確認資訊,則該幀被判為出錯或丟失,此時...