2010-07-18 76 views
5

如果我在任何頁面上放置WebBrowser控件,頁面不再響應WebBrowser下的操作事件。該頁面的其他區域正常工作。Windows Phone 7 WebBrowser控件吞下操縱事件?

通過在頁面中重寫OnManipulationCompleted,然後在頁面上放置一個WebBrowser控件,可以輕鬆確定。嘗試刷過WebBrowser,OnManipulationCompleted永遠不會被調用。

我無法將WebBrowser設置爲IsHitTestVisible=false,因爲我需要能夠點擊鏈接。但我希望頁面響應左/右滑動。

任何人有任何明智的想法?或者知道這是否是當前版本中的錯誤?

+0

咕嘟咕嘟閱讀,確認。我放棄了WebBrowser後面的一個列表框。通過任何明顯的手段無法讓滾動事件進入列表框。 – 2010-07-18 10:39:29

回答

2

這是我們實現WebBrowser的結果。觸摸事件直接傳遞給瀏覽器引擎。一旦發生這種情況Silverlight基本上不在圖片中。不幸的是,我想不出任何可能會給你想要的解決辦法。 -Skeets,MS開發

+0

我在網頁瀏覽器的頂部創建了一個透明的畫布。儘管如此,這可以防止事件進入瀏覽器。 – Esa 2012-08-17 13:49:18

1

如果你真的它:

<Grid> 
    <phone:WebBrowser Source="http://www.microsoft.com" /> 
    <Rectangle Fill="Transparent" ManipulationCompleted="HandleManipulationCompleted"/> 
</Grid> 

但是,當然,它完全鎖定了與Web瀏覽器控制交互而且也只是沒有辦法以呼應操縱事件到瀏覽器...

4

我想延長Skeet已經寫好的東西。

問題是,MS WP7開發團隊已經發布了「指導方針」,他們高度不鼓勵在同一頁面放置多個佈局控件,以接受和響應同一組手勢。例如,您不應該嘗試在Pano中嵌入Pivot,因爲橫向輕掃會發生衝突,並且很難區分哪些應該執行其操作。同樣的情況是瀏覽器:它響應所有的滑動和平底鍋......所以不應該放在幾乎任何滾動控制!

說了這麼多,我想告訴你可以克服它 - 雖然它可能會變得不容易,這取決於你的實際情況。

如果你仍然需要通知手勢,最簡單的事情就是使用Silverlight Toolkit庫中的GestureService/GestureListener。即使WebBrowser將原始操作事件熄滅,GestureListener仍然能夠通知您 - 因爲它顯然在某個「其他層」上偵聽,我現在並不完全想要接受它。剛取庫,添加引用它,這樣做:

GestureService.GetListener(targetcontrol).Flick(myBrowserFlickHandler); 

它完成 - 你得到通知時被e.handled上控制別人的筆觸,具有完全沒有操縱事件的有關= TRUE或不。這裏的小聲明:我不記得是否在7.0上有效,因爲WebBrowser在那裏有點不同。在7.1和7.5上它應該可以工作。

但是,如果你在WebBrowser上應用它 - 你將得到notif - 但webbrowser也會得到它。這意味着,2個控制器會作出反應,並且如果從處理程序內啓動一些故事板,它會變得視覺上相當不友好。

在7.1和幾乎當前的7.5上,可以使用WebBrowser和完全控制它將看到的操作事件。因此,通過過濾WB的mani事件,並通過使用GestureListener自己查看事件,您既可以阻止WB執行任何操作,也可以用自己的操作進行響應。我已經針對類似問題廣泛地撰寫了這篇文章,詳情請參閱WP7 Pivot control and a WebBrowser control。儘管如此,這不是一個快速/簡單/有趣的事情。

編輯:和MOST重要的是,它不能保證在未來工作。在整個7.1和7.5 SDK/OS/API版本中,在WebBrowser控件內部,一些主要的內部正在進行的更改是可見的,如果它在接下來的幾個版本中發生顯着變化,我不會感到驚訝。如果你不想在未來的1 - 2年內再次重新討論這個問題,不要去玩那些我在那裏寫過的東西。

-3

我認爲你有一個更好的方式捕獲操縱事件,如果是在WP7.5芒果,因爲瀏覽器控件是完全不同的,這是我從這個link

+0

-1 @Prakash這是我寫在這裏的博客文章的直接剽竊:http://www.scottlogic.co.uk/blog/colin/2011/11/suppressing-zoom-and-scroll-interactions-在Windows Phone 7的瀏覽器控制/ – ColinE 2012-03-01 14:58:35

+0

@ColinE是的,我寫在那裏,我從鏈接中得到它。不應該這樣做。 – Prakash 2012-03-02 06:24:15

+0

@ColinE如果你對此不滿意,我只會給你的博客鏈接,而不是任何內容。 – Prakash 2012-03-02 07:45:38