TabControl加上手勢操作這應該是未來大部份應用程式的基礎框架,以下就簡單示範如何以手勢左、右控制TabControl換頁:
1. 開一個新的Mobile專案
2. 拉一個TabControl元件到Form上面,並將Align屬性設為Client
3. 在TabControl上按右鍵,選擇Add TTabItem,隨便新增個三、四頁
4. 再拉一個GestureManager元件到Form上面,GestureManager是XE6內建的手勢管理的元件
以上步驟做完畫面差不多長這樣:
所需要的工具就兩個元件而已,接下來就是把它們組合起來使用
5. 將TabControl1的Touch.GestureManager屬性,指定給GestureManager1,如此一來只要是在TabControl1上做的任何手勢都會由GestureManager1來控制
6. 將Touch.Gestures.Standard的Left及Right選項勾起來,表示要偵測這兩個手勢,如下圖:
拉一拉選一選的工作做的差不多了,該來寫幾行程式碼了
7. 在TabControl1的Events中新增OnGesture的事件,並在事件中加入以下程式碼:
case EventInfo.GestureID of
sgiLeft: //手勢由右往左
TabControl1.Next(); //下一頁
sgiRight: //手勢由左往右
Tabcontrol1.Previous(); //上一頁
end;
8. 完成,按下F9執行囉!
以上範例在換頁時,是有動畫滑動的效果的,可以看到兩個頁面之間切換的動畫,但為了顯示動畫,換頁的速度就會比較慢些,如果重視的是換頁的速度的話,可以在TabControl1.Next和Previous的方法加入參數TTabTransition.None,如下:
case EventInfo.GestureID of
sgiLeft: //手勢由右往左
TabControl1.Next(TTabTransition.None) //下一頁
sgiRight: //手勢由左往右
Tabcontrol1.Previous(TTabTransition.None); //上一頁
end;
如此一來在切換頁面時,就不會有動畫效果,很快就可以切換過去了!