WPF下如何去除WebBrowser的滚动条和捕获关闭事件
方法一:適用于VS2008
?
1、在解決方案中添加“引用”
?????選擇 COM 下的 Microsoft html object library
?
2、引入命名空間
?????using mshtml;
?
3、添加 WebBrowser 事件
?????在 WebBrowser 的 LoadCompleted 事件里
?????mshtml.HTMLDocumentClass dom = (mshtml.HTMLDocumentClass)webBrowserCygj.Document; //定義HTML
?????dom.documentElement.style.overflow = "hidden";??? //隱藏瀏覽器的滾動條?
?????dom.body.setAttribute("scroll", "no");??????????? //禁用瀏覽器的滾動條
?
方法二:適用于VS2010
?
1、在解決方案中添加“引用”
?????選擇 COM 下的 Microsoft html object library
2、引入命名空間
?????using mshtml;
3、添加 WebBrowser 事件
?????在 WebBrowser 的 LoadCompleted 事件里
?????mshtml.HTMLDocument dom = (mshtml.HTMLDocument)webBrowserCygj.Document; //定義HTML
?????dom.documentElement.style.overflow = "hidden";??? //隱藏瀏覽器的滾動條?
?????dom.body.setAttribute("scroll", "no");??????????? //禁用瀏覽器的滾動條
?
注1:出于MS的某些原因,在VS2010下,HTMLDocumentClass 需更改為HTMLDocument 方可生效。
注2:通過頁面代碼控制瀏覽器窗口滾動條
????????overflow-y:hidden '表示沒有垂直滾動條
????????overflow-x:hidden '表示沒有水平滾動條
????????scroll:no或overflow-x:hidden;overflow-y:hidden或overflow:hidden '讓瀏覽器窗口永遠不出現滾動條
????????例:<BODY scroll="no">
注3:“隱藏瀏覽器的滾動條”和“禁用瀏覽器的滾動條”同時使用,方可實現對所有頁面有效。
?
有點難描述說的是什么。大概就是下面這個圖:窗體中嵌套一個Webbrowser,現在網頁請求關閉
?
?
響應MessageHook事件:
this.webBrowser.MessageHook += webBrowser_MessageHook; IntPtr webBrowser_MessageHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled){if(msg == 130){//do something}return hwnd;}這個事件不是EventHander的委托,而是HwndSourceHook的委托。
偉大的VS并沒有對其做優化處理,所以在Xaml中響應事件會出錯。只能在后臺自己寫了。
總結
以上是生活随笔為你收集整理的WPF下如何去除WebBrowser的滚动条和捕获关闭事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多重背包Q
- 下一篇: [老老实实学WCF] 第二篇 配置WCF