C# Windows 8、Phone 8 開發,Xaml 解決Tapped、Click、Manipulation 滑鼠、觸碰事件全數失靈 (圖解)。

  • 1749
  • 0
  • C#
  • 2015-06-10

一般我們在開發Windows Store App時,很常使用到滑鼠點擊、觸碰的事件(如Tapped、Click、Manipulation ),但是竟然有失靈的時候!事出非常弔詭,這其實是因為我們在Xaml排版上所出的漏洞,當控制項被遮蔽時Tapped、Click、Manipulation 滑鼠、觸碰事件就會全數失靈,就算上一層是完全透明的狀態也是無效,所以在Xaml排版上我們比須用點心。

本篇文章將引導您解決Tapped、Click、Manipulation 滑鼠、觸碰事件全數失靈。

一般我們在開發Windows Store App時,很常使用到滑鼠點擊、觸碰的事件(如Tapped、Click、Manipulation ),但是竟然有失靈的時候!事出非常弔詭,這其實是因為我們在Xaml排版上所出的漏洞,當控制項被遮蔽時Tapped、Click、Manipulation 滑鼠、觸碰事件就會全數失靈,就算上一層是完全透明的狀態也是無效,所以在Xaml排版上我們比須用點心。

 

本篇文章將引導您解決Tapped、Click、Manipulation 滑鼠、觸碰事件全數失靈。

 

首先我們在Xaml很常使用Grid來排版,

而Grid的排版方式若不指定ColumnDefinitions或是RowDefinitions,則Grid內的控制項將是以相對路徑來排版,

所以會造成物件重疊的現象,

因為物件重疊所以也就造成較上方的物件會屏蔽下方物件的滑鼠、觸碰事件。

 

 

Grid裡沒有使用ColumnDefinitions或是RowDefinitions。

 

如圖所示在後面宣告的Grid會在最上層

 

1

 

當然在所有Tapped、Click、Manipulation 滑鼠、觸碰事件也只會發生在肉眼看到的第一個Grid ! !

 

2

 

就算最上層的Grid是透明的,中間層和最下層的Grid也不會收到任何滑鼠或觸碰的事件。

 

3

 

 

 

 

所以如此可以得知為什麼有些控制項的Tapped、Click、Manipulation 滑鼠、觸碰事件會全數失靈了。

我們只要將需要偵測Tapped、Click、Manipulation 滑鼠、觸碰事件的控制項移動到最上層即可。

 

Refrences : SUKI 悟出來的…

 

文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 !  感謝。

SUKI

HOLIESTAR