HTMLUI可以加载HTML页面,并且相比WebKit等占用资源特别少

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body marginheight="0" marginwidth="0" bgcolor="#ffffff">
<div>
<span style="font:Bold">12121</span>
<span style="font:Bold;Color:Blue">121212</span>
<span style="font:Bold;Color:Blue">121212</span>
</div>
<hr></hr>
<div>
<span style="font:Bold;font-size:9pt">1212</span>
<span style="font:Bold;font-size:9pt">1221</span>
<span style="font:Bold;font-size:9pt">1212</span>
</div>
<p>
<span style="font:Bold;font-size:9pt">12121</span> <span id="aaa" style="width:24px;height:24px;"></span> <span style="font:Bold;font-size:9pt">121212</span>
</p>
</div>
</body>
</html>

(1)HTMLUI源码中绘制部分

/// <summary>
/// Starts the drawing of the document from the start element.
/// </summary>
/// <param name="e">Paint event data.</param>
private void ProcessDraw(PaintEventArgs e)
{
if (e == null)
throw new ArgumentNullException("e"); if (m_startDrawElement == null)
{
this.RenderRoot.DrawElement(e);
}
else
{
m_startDrawElement.DrawElement(e); // Reset start element.
m_startDrawElement = null;
}
}

如果m_startDrawElement为null,在根html tag下绘制,否则在指定元素下绘制。
(2)FlowLayoutPanel中使用HTMLUI时,要先用一个UserControl或者其它控件作为HTMLUI的父控件,不然滚动时会出现花屏现象。

(3)动态改变HTMLUI元素内容代码

private void htmluiControl1_PreRenderDocument(object sender, Syncfusion.Windows.Forms.HTMLUI.PreRenderDocumentArgs e)
{
Hashtable htmlelements = new Hashtable();
htmlelements = e.Document.ElementsByUserID;
Label lable=new Label();
lable.Text = "";
lable.Width = ;
lable.Height = ;
lable.BackColor = Color.Red;
BaseElement aaa = htmlelements["aaa"] as BaseElement;
new CustomControlBase(aaa, lable); } private void ChangeLableValue(HTMLUIControl htmluiControl,string str)
{ var v = htmluiControl.Document.GetElementsByUserIdHash()["aaa"];
Label v1= htmluiControl.Document.GetControlByElement((IHTMLElement) v) as Label;
v1.Text = str;
}

(4)有时创建会报线程间操作无效: 从不是创建控件“”的线程访问它,经检查原因在PreRenderDocument,修改PreRenderDocument如下。

private void htmluiControl1_PreRenderDocument(object sender, Syncfusion.Windows.Forms.HTMLUI.PreRenderDocumentArgs e)
{
Hashtable htmlelements = new Hashtable();
htmlelements = e.Document.ElementsByUserID; Action<Hashtable> action = (data) =>
{
Label lable = new Label();
lable.Text = "";
lable.Width = ;
lable.Height = ;
lable.BackColor = Color.Red;
BaseElement aaa = htmlelements["aaa"] as BaseElement;
new CustomControlBase(aaa, lable);
};
Invoke(action, htmlelements); }

一起研究的来群:616945527

Syncfusion HTMLUI研究一的更多相关文章

  1. Syncfusion的社区许可及免费电子书和白皮书

    今晚由于要忙于其他事情,就简单的给大家推荐一个第三方组件库.特别注明:这是我义务为这家公司打广告.毕竟我从他们公司收获了很多知识. Syncfusion是一家微软生态下的第三方组件/控件供应商,算是后 ...

  2. 闲来无聊,研究一下Web服务器 的源程序

    web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机.这个浏览器程序是一个简单的电话号码查询软件.最初的web服务器程序就是一个利用浏览器和web服 ...

  3. SQLSERVER聚集索引与非聚集索引的再次研究(上)

    SQLSERVER聚集索引与非聚集索引的再次研究(上) 上篇主要说聚集索引 下篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(下) 由于本人还是SQLSERVER菜鸟一枚,加上一些实验的逻 ...

  4. 深入研究Visual studio 2017 RC新特性

    在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...

  5. 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践

    提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...

  6. 对一致性Hash算法,Java代码实现的深入研究

    一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...

  7. SQLSERVER聚集索引与非聚集索引的再次研究(下)

    SQLSERVER聚集索引与非聚集索引的再次研究(下) 上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 ...

  8. 开源Word读写组件DocX 的深入研究和问题总结

    一. 前言 前两天看到了asxinyu大神的[原创]开源Word读写组件DocX介绍与入门,正好我也有类似的自动生成word文档得需求,于是便仔细的研究了这个DocX. 我也把它融入到我的项目当中并进 ...

  9. 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)

    前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...

随机推荐

  1. Jquery ajax $getScript()和$getJSON和JSONP

  2. .NET中的许可证机制--License

    .NET中的许可证机制主要类:System.ComponentModel.License(为所有许可证提供 abstract 基类.向组件的特定实例授予许可证)     System.Componen ...

  3. select、poll、epoll之间的区别总结[整理]【转】

    转自:http://www.cnblogs.com/Anker/p/3265058.html select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符 ...

  4. ubuntu 程序后台运行几个方法

    51 1. 程序后加上“&” ,即 “./myjob &”, 将命令放入到一个作业队列中,可以用命令“jobs” 查看 2. 将1中的命令放在 “()”中, 即 “(./myjob & ...

  5. Link-Cut Tree(LCT)&TopTree讲解

    前言: Link-Cut Tree简称LCT是解决动态树问题的一种数据结构,可以说是我见过功能最强大的一种树上数据结构了.在此与大家分享一下LCT的学习笔记.提示:前置知识点需要树链剖分和splay. ...

  6. 【Sublime Text3】Package Control:Install Package不能使用解决方法

    官网地址 https://packagecontrol.io/installation 报错内容     解决方法 https://packagecontrol.io/docs/troubleshoo ...

  7. Harmonic Number (II) LightOJ - 1245 (找规律?。。。)

    题意: 求前n项的n/i  的和 只取整数部分 暴力肯定超时...然后 ...现在的人真聪明...我真蠢 觉得还是别人的题意比较清晰 比如n=100的话,i=4时n/i等于25,i=5时n/i等于20 ...

  8. 自学Aruba6.1-基本网络参数配置(web页面配置)

    点击返回:自学Aruba之路 自学Aruba6.1-基本网络参数配置(web页面配置) 1 配置VLAN 1.1  新建VLAN Configuration---VLANs中,VLANID选项卡下的A ...

  9. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)

    上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...

  10. centos6.5 开机自动挂载硬盘

    1. 查看硬盘信息 输入命令查询 blkid 查找新添加的硬盘的UUID信息,并且拷贝. 2.编辑系统分区表,加入硬盘自动挂载信息 2.1 打开系统分区表 vim /etc/fstab 进入文件编辑模 ...