1
林建立一個Windows應用商店應用程序(8.1),我使用webview控件加載html文件。我需要趕上後面的代碼中的web視圖的拖/滑事件。我該怎麼做?如何在Windows Store應用程序中捕獲webview的輕掃手勢?
林建立一個Windows應用商店應用程序(8.1),我使用webview控件加載html文件。我需要趕上後面的代碼中的web視圖的拖/滑事件。我該怎麼做?如何在Windows Store應用程序中捕獲webview的輕掃手勢?
試試這個
public MainPage()
{
this.InitializeComponent();
webView.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateInertia ;
webView.ManipulationStarted += webView_ManipulationStarted;
webView.ManipulationDelta += webView_ManipulationDelta;
}
Point start;
void webView_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
if (e.IsInertial)
{
int threshold = 500;
if (start.X - e.Position.X > threshold) //swipe left
{
e.Complete();
//do something here
}
}
}
void webView_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
start = e.Position;
}
頭可以使用LinqToVisualTree找到網頁視圖的邊界,並獲得事件他們。
因此其他響應的代碼變爲:
public MainPage()
{
this.InitializeComponent();
var border = webView.Descendants<Border>().Last() as Border;
border.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateInertia ;
border.ManipulationStarted += webView_ManipulationStarted;
border.ManipulationDelta += webView_ManipulationDelta;
}
Point start;
void webView_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
if (e.IsInertial)
{
int threshold = 500;
if (start.X - e.Position.X > threshold) //swipe left
{
e.Complete();
//do something here
}
}
}
void webView_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
start = e.Position;
}
感謝您的答覆。但上面的代碼似乎並沒有工作:( – shefintk
我不知道爲什麼它不適合你,但它對我很好用 確保你的webview在屏幕上顯示,並且它不在任何UI後面 – nRewik
很高興聽說它適用於你。不知道我在這裏錯過了什麼。我試着在xaml中只使用一個webview,就像這樣 但它仍然不起作用 –
shefintk