我正在使用WPF WebBrowser控件来预览用户输入的HTML。
...示例
WPF TextBox and WebBrowser controls http://img411.imageshack.us/img411/2296/appbz9.jpg
但是,如何将WebBrowser控件设为只读?我不希望用户点击那里的链接并导航离开预览页面。
我希望我的用户创建链接。我只是想确保“预览”窗格是正确页面的预览。
答案 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来禁用具有自定义延迟的属性,以便文档有时间加载。
祝你好运, 丹