如何将WPF WebBrowser设为只读?

时间:2008-12-19 16:46:42

标签: .net wpf

我正在使用WPF WebBrowser控件来预览用户输入的HTML。

...示例

WPF TextBox and WebBrowser controls http://img411.imageshack.us/img411/2296/appbz9.jpg

但是,如何将WebBrowser控件设为只读?我不希望用户点击那里的链接并导航离开预览页面。

我希望我的用户创建链接。我只是想确保“预览”窗格是正确页面的预览。

5 个答案:

答案 0 :(得分:8)

捕获WebBrowser控件的Navigating事件,并将其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

答案 1 :(得分:6)

你不能只在整个控件上放置transparent window并捕获那里的所有鼠标和键盘事件吗?

答案 2 :(得分:2)

也许你可以抓住控件的点击事件并在尝试导航到链接之前扔掉它?我不确定是否可能,但我会尝试。

答案 3 :(得分:1)

您必须清理输入。

不允许使用锚点或脚本标记或属性。 (我不知道你是否可以在控件上禁用javascript,但这对我来说是一个好主意。

答案 4 :(得分:-1)

有没有人尝试使用WebBrowserControl.AllowNavigation = False 我认为这样做。您可以在运行时根据需要启用和禁用该属性。我使用Timer来禁用具有自定义延迟的属性,以便文档有时间加载。

祝你好运, 丹