最近在做北京现代项目的时候,遇到一个需求将韩国那边写好的网页嵌套到WPF程序中显示。

开始的时候使用的是第三方的浏览器控件:awesomium,在本地测试,显示没有问题。但是拿到客户现场,只显示半屏。修改各种高度,还是会出现问题,用远程桌面打开,显示正常,百思不得解。

换控件使用微软自带的浏览器控件WebBrowser,升级IE还是会出现显示半屏问题。

查看网页源码,页面显示高度是动态获取的,以下是网页中的JS源码
    var wHeight, header1, header2;
    wHeight = $(window).height();
    header1 = $("div.board_header").outerHeight();
    header2 = $("div.table_header").outerHeight();
    $("div.table_scroll").css("max-height", (wHeight - header1 - header2 - 1 - 40)  + "px");

max-height 获取的值是动态获取的,所以会导致以上的问题。

解决问题思路:页面加载完成,通过注入JS脚本,修改max-height,来显示完整网页。

源码如下:

/// <summary>
        /// 浏览器加载完成事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ibbWeb_LoadCompleted(object sender, System.Windows.Navigation.NavigationEventArgs e)
        {
            try
            {
                dom = (mshtml.HTMLDocument)ibbWeb.Document; //定义HTML
                dom.documentElement.style.overflow = "hidden"; //隐藏浏览器的滚动条
                dom.body.setAttribute("scroll", "no"); //禁用浏览器的滚动条
                dom.parentWindow.execScript(@"window.onload = function(){ $('div.table_scroll').css('max-height', '910px'); setTimeout('window.location.href=window.location.href',"+refreshPageInterval+") }"); //向页面注入javascript语句
            }
            catch (Exception ex)
            {
                LogInfo.saveLog("加载浏览器控件异常:" + ex);
                return;
            }
        }

WPF中使用WebBrowser的更多相关文章

  1. 浏览器扩展系列————在WPF中定制WebBrowser快捷菜单

    原文:浏览器扩展系列----在WPF中定制WebBrowser快捷菜单 关于如何定制菜单可以参考codeproject上的这篇文章:http://www.codeproject.com/KB/book ...

  2. 在WPF中嵌入WebBrowser可视化页面

    无论是哪种C/S技术,涉及数据可视化就非常的累赘了,当然大神也一定有,只不过面向大多数人,还是通过网页来实现,有的时候不想把这两个功能分开,一般会是客户的原因,所以我们打算在WPF中嵌入WebBrow ...

  3. WPF中禁止WebBrowser控件打开新窗口

    一.针对纯WPF的WebBrowser控件: <summary> Suppress Script Errors In WPF WebBrowser </summary> pub ...

  4. WPF中的WebBrowser

    MainWindow.xaml.cs //新窗口事件 { Uri uri = new Uri(textBox_uri.Text); System.Windows.Forms.Integration.W ...

  5. C# WPF 中WebBrowser拖动来移动窗口,改变窗口位置

    前言 wpf中的WebBrowser相比之前的winform阉割了不少东西,也增加了不少东西,但是msdn对wpf也没有较好的文档 WebBrowser可以说是一个.NET控件,相对于WPF中的控件, ...

  6. Unity3D 将 Unity 嵌入WPF中的一些研究笔记

     一. 在 WPF 中使用 WebBrowser,直接打开 WebPlayer.html 以这种方式有一个问题是. 无法在 WebBrowser 的上面 放置其它的控件, 在运行时,都不会显示 . 以 ...

  7. WPF中展示HTML

    业务需求:将具有表格信息的HTML片段在WPF中展示出来,并像网页端一样,可以进行input的填写,checkbox选择,最后以HTML的形式完成保存. 天真的以为直接引入WPF中的WebBrowse ...

  8. WPF中不规则窗体与WebBrowser控件的兼容问题解决办法

    原文:WPF中不规则窗体与WebBrowser控件的兼容问题解决办法 引言 这几天受委托开发一个网络电视项目,要求初步先使用内嵌网页形式实现视频播放和选单,以后再考虑将网页中的所有功能整合进桌面程序. ...

  9. WPF中嵌入WinForm中的webbrowser控件

    原文:WPF中嵌入WinForm中的webbrowser控件 使用VS2008创建WPF应用程序,需使用webbrowser.从工具箱中添加WPF组件中的webbrowser发现其中有很多属性事件不能 ...

随机推荐

  1. mysql 修改默认字符集为utf8

    MySQL 5.5, all you need is: [mysqld] character_set_client=utf8 character_set_server=utf8 collation_s ...

  2. MySQL统计函数记录——按月、按季度、按日、时间段统计

    按年汇总,统计:select sum(mymoney) as totalmoney, count(*) as sheets from mytable group by date_format(col, ...

  3. windows下apache服务器开启压缩和网页缓存

    找到配置文件:http.conf apache开启压缩 一.开启配置,去除下面代码前面的#号LoadModule deflate_module modules/mod_deflate.soLoadMo ...

  4. 在C#中几种常见数组复制方法的效率对比

    原文是在http://blog.csdn.net/jiangzhanchang/article/details/9998229 看到的,本文在原文基础上增加了新的方法,并对多种数据类型做了更全面的对比 ...

  5. 一个简单的定时表达式(HH:mm:ss)解析

    前言 为客户开发了一个日志监控程序,监听各频道是否正常工作.其中有一个功能是这样的,当所有频道正常运行一段时间后,语音提示值班人员系统运行正常.一开始,想法比较简单,设置了一个变量,在线程不断轮询的过 ...

  6. mac idea中的Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:1099问题

    今天上午用的好好的就出现了这个问题 真是奇怪: Google了一番有以下解决办法: 1.hosts文件的问题: vi /etc/hosts文件 添加127.0.0.1  localhost里面 2.m ...

  7. C语言_指针和数组的几种访问形式

    敲几行代码来看看几种访问的形式~ #include <stdio.h>;int main() { ] = {, , , , , }; //初始化5个元素的一维数组 int *p = arr ...

  8. Shell脚本的颜色样式及属性控制

    首先看一下格式 echo -e "\033[字背景颜色:文字颜色m字符串\033[0m" 举例 echo -e "\033[41;36m 字体 \033[0m" ...

  9. 各种语系的unicode对应以及local编码方式

    链接:http://www.doc88.com/p-801578373970.html 一.英文 Unicode范围: 0041-005A, 0061-007A (若含数字与符号,则为0021-007 ...

  10. RGB与HSV之间的转换公式及颜色表

    RGB & HSV 英文全称 RGB - Red, Green, Blue HSV - Hue, Saturation, Value HSV --> RGB 转换公式 HSV --> ...