我正在使用WPF WebBrowser控件來預覽用戶輸入的HTML。如何使WPF WebBrowser只讀?
例如...
WPF TextBox and WebBrowser controls http://img411.imageshack.us/img411/2296/appbz9.jpg
但是,我怎麼取得的WebBrowser控件只讀?我不希望用戶點擊那裏的鏈接並從預覽頁面導航。
我希望我的用戶創建鏈接。我只想確保「預覽」窗格是正確頁面的預覽。
我正在使用WPF WebBrowser控件來預覽用戶輸入的HTML。如何使WPF WebBrowser只讀?
例如...
WPF TextBox and WebBrowser controls http://img411.imageshack.us/img411/2296/appbz9.jpg
但是,我怎麼取得的WebBrowser控件只讀?我不希望用戶點擊那裏的鏈接並從預覽頁面導航。
我希望我的用戶創建鏈接。我只想確保「預覽」窗格是正確頁面的預覽。
捕獲的的導航事件WebBrowser控件並將其NavigatingCancelEventArgs的Cancel屬性設置爲True。
Visual Basic代碼...
Private Sub WebBrowser1_Navigating(...) Handles WebBrowser1.Navigating If WebBrowser1Locked Then e.Cancel = True End If End Sub
這需要一個全局鎖定布爾變量。
Partial Public Class Window1 Dim WebBrowser1Locked As Boolean = True ... End Class
和鎖定和解鎖,以圍繞期望導航纏繞。
WebBrowser1Locked = False WebBrowser1.NavigateToString("...") WebBrowser1Locked = True
您將不得不清理輸入。
不允許錨或腳本標記或屬性。 (我不知道你是否可以在控件上禁用javascript,但這將是一個好主意。
難道你不能只在整個控件上放置一個transparent window並捕獲所有的鼠標和鍵盤事件嗎?
也許你可以捕捉控件的單擊事件,並把它扔掉它試圖導航到鏈路之前?我不知道這是否是可能的,但我會嘗試。
WebBrowser控件沒有Click事件,而是一個導航事件。查看我的答案以獲得完整的解 – 2008-12-19 20:09:57
有沒有人嘗試過與WebBrowserControl.AllowNavigation =假 我認爲這會做。您可以在運行時根據需要啓用和禁用該屬性。我使用Timer來禁用自定義延遲的屬性,以便文檔有時間加載。
祝你好運, 丹
這不會對我的目的工作。我希望我的用戶創建鏈接。我只想確保「預覽」窗格是正確頁面的預覽。 – 2008-12-19 16:54:42
哦,我明白了。這是相當的醃製。 – EndangeredMassa 2008-12-19 17:08:28