Syncfusion HTMLUI研究一
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研究一的更多相关文章
- Syncfusion的社区许可及免费电子书和白皮书
今晚由于要忙于其他事情,就简单的给大家推荐一个第三方组件库.特别注明:这是我义务为这家公司打广告.毕竟我从他们公司收获了很多知识. Syncfusion是一家微软生态下的第三方组件/控件供应商,算是后 ...
- 闲来无聊,研究一下Web服务器 的源程序
web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机.这个浏览器程序是一个简单的电话号码查询软件.最初的web服务器程序就是一个利用浏览器和web服 ...
- SQLSERVER聚集索引与非聚集索引的再次研究(上)
SQLSERVER聚集索引与非聚集索引的再次研究(上) 上篇主要说聚集索引 下篇的地址:SQLSERVER聚集索引与非聚集索引的再次研究(下) 由于本人还是SQLSERVER菜鸟一枚,加上一些实验的逻 ...
- 深入研究Visual studio 2017 RC新特性
在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- 对一致性Hash算法,Java代码实现的深入研究
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
- SQLSERVER聚集索引与非聚集索引的再次研究(下)
SQLSERVER聚集索引与非聚集索引的再次研究(下) 上篇主要说了聚集索引和简单介绍了一下非聚集索引,相信大家一定对聚集索引和非聚集索引开始有一点了解了. 这篇文章只是作为参考,里面的观点不一定正确 ...
- 开源Word读写组件DocX 的深入研究和问题总结
一. 前言 前两天看到了asxinyu大神的[原创]开源Word读写组件DocX介绍与入门,正好我也有类似的自动生成word文档得需求,于是便仔细的研究了这个DocX. 我也把它融入到我的项目当中并进 ...
- 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)
前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...
随机推荐
- [转帖]UML各种图总结-精华
UML各种图总结-精华 https://www.cnblogs.com/jiangds/p/6596595.html 之前自己以为画图很简单 不需要用心学 现在发现自己一直没有学会一些基础的知识 能力 ...
- PHP常用工具类积累
第一 请求第三方接口的工具类 例如,封装了get和post请求方法的工具类,代码如下: <?php class HttpClient{ /** * HttpClient * @param arr ...
- Django model 中的字段解释
Django 通过 models 实现数据库的创建.修改.删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长.你通常不需 ...
- BZOJ3425[POI2013]Polarization——DP+bitset+分块
题目描述 Everyone knew it would only be a matter of time. So what? Faced for years on, a peril becomes t ...
- BZOJ2588Count on a tree——LCA+主席树
题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中lastans是上一个询问的答案,初始为0,即第一个 ...
- BZOJ3998 TJOI2015弦论(后缀数组+二分答案)
先看t=1的情况.显然得求出SA(因为我不会SAM).我们一位位地确定答案.设填到了第len位,二分这一位填什么之后,在已经确定的答案所在的范围(SA上的某段区间)内二分,找到最后一个小于当前串的后缀 ...
- BZOJ5294 [BJOI2018] 二进制 【线段树】
BJOI的题目感觉有点难写 题目分析: 首先推一波结论.接下来的一切都在模3意义下 现在我们将二进制位重组,不难发现的是2^0≡1,2^1≡2,2^2≡1,2^3≡2....所以我们考虑这样的式子 2 ...
- linux保存住github的账号和密码
我是用 shell 命令来执行 git 操作的,所以就决定在 --global 配置一下用户名和密码,不用每次手动输入了. 设置步骤 1. 首先需要 ftp 连接到你的 Linux 服务器,在根目录( ...
- 自学工业控制网络之路1.3-典型的现场总线介绍FF
返回 自学工业控制网络之路 自学工业控制网络之路1.3-典型的现场总线介绍FF 1994年6月,ISP和WORLDFIP合并成立现场总线基金会FF.1998年,FF基金会开发了HSE 10/100Mb ...
- luogu3295 萌萌哒 (并查集+ST表)
如果给相同的位置连边,最后联通块数是n,最后答案就是$9*10^{n-1}$ 但直接连边是$O(n^2)$的 所以事先处理出一个ST表,每次O(1)地给那个ST表连边 最后再一点一点下放,就是把在这层 ...