显示和建立PDF的开源.net库:http://www.pdfsharp.net

创建PDF的开源SilverLight库:http://silverpdf.codeplex.com/

显示PDF的的开源SilverLight代码:
http://www.codeproject.com/KB/silverlight/BlendPDFwithSilverlight.aspx
演示代码下载:点击下载此文件

 

点击下载此SilverLight控件代码

silverlight的一个项目代码,基本构架是Web Service+SilverLight控件构成,组成网络远程虚拟仪器的最佳微软解决方案。系统访问硬件有WebSerivice构成,提供清晰的接口供silverLight调用。

如下图所示,银光控件的类结构如下:由Canvas作为基类,所有的界面元素均集成于此类。SInstr类为主界面类,其由CtlPanel控制类,Wave波形显示类,Params参数配置类共同组合而成。

控件的界面如下:

信号源界面

信号源界面1

类图
设计的类图
信号源界面

信号源界面2

银光控件演示 :需下载微软银光控件…



 

最近在尝试Silverlight上呈现HTML内容,花了不少时间,可以说没有真正的好方案,以下是我的测试结果,供各位网友参考。

测试内容,我主要想测4个东西,

1. 给HTML文字是否可以呈现,包含了Table。
2. 给URL浏览其他网站,且可以完整的呈现。
3. 可否Javascript操作。
4. 能不能Print印列其内容。

A. WebBrowser

JS:可(同网域) HTML:可 Web:可 Print:可

本来很期待Silverlight 4这一个功能的,而且在教学影片或听老师们介绍,我好像都没有注意到它一定要在Out of Browser (OOB)才能执行,等到真正开始测的时候才发现,令人大失所望,而且我在测试时右键单击,看到了IE的选项,我终于知道他为什么要OOB了,因为要与COM整合,呼叫IE的核心,很想说Silverlight开发团队也太懒了吧,不过又想想写一个Browser也不是简单的事。

以下是代码片段:
// 用WebBrowserBrush截取Web画面
WebBrowserBrush brush = new WebBrowserBrush();
brush.SetSource(this.webBrowser1);
PrintDocument print = new PrintDocument();
print.PrintPage += (obj, args) =>
{
args.PageVisual = new Border() { Background = brush };
args.HasMorePages = false;
};
print.Print(“Print Test”);
RichTextBox

B.RichTextBox

JS:否 HTML:否 Web:否 Print:可

RichTextBox测试只能使用XAML,除非学下面的几个组件去将HTML转成XAML(不是百分之百就是了),还有印列时只会对RichTextBox的外观绘图,如果文字太长有Scrollbor,Scrollbor也会印列。

C.HtmlHost 假货系列

JS:可(同网域) HTML:可 Web:可 Print:否

为什么叫假货系列呢,因为他们的控件不是真的在Silverlight中,而是在Silverlight上放一个Html的iframe,用 Dom与javascript去互动,害我一开始看到Demo很开心,想说找到可行方案了,仔细操作才发现他们是假的,还有因为是使用DOM无法在 Outof Browser上操作、Silverlight enableHtmlAccess 属性必需设定为true,PrintDocument也无法印列其内容。

这就是他们的实作方式。  divelements HtmlHost

跟上一个组件同样的操作原理。  ComponentOne HtmlHost

虽然我觉得这作法很假,但WebBrowser好像也没好到那里去,而且还不用Out ofBrowser,我试过新增移除放大缩小,后二个都有写DOM+Javascript去操作,只是有时差(试试ComponentOneHtmlHost Demo就可以感受了)。

D.Liquid RichTextBox

JS:否 HTML:免强可 Web:否 Print:可

这组件有提供HTML的汇入与汇出,汇出正常,但汇入是这组件用将HTML解悉成XAML,太复杂的格式会失败,虽然无法使用Javsscript,但可以写Silvelight的Code去互动,如范例。

公司内的一个项目用了这个组件半年多了,在Silvelight4还没出来前,这是试过最好的RichTexBox,不过对中文支持度非常的差,有 时跑动画,RichTextBox内有中文字就死当了,为什么动画呢?,那个项目是Online ProjectManager,每个Project下有WeeklyNote,而WeeklyNote就是使用这一个组件,不同的Project与 WeeklyNote切换应好客户的要求,要有过场动画,还有打中文字有时文字会暂时消失,按下Enter才会重现等等只有输入中文才会发生的问题,不然 我觉得满好用的。

E.HtmlTextBox

JS:否 HTML:免强可 Web:否 Print:可

这是早在Silverlight 2时国外的高手就写出如何将HTML转成XAML的组件,虽然能转换的格式不多,如果是很简单的需求,可以参考这个组件。



 

经过一番摸索,发觉这个是语种版本的问题,如果期待官方,那势必要等到silverlight 4的中文版本推出,再等待 ria service中文版;那就不知道什么时候的事情了,我周一就要有编译环境呀。
那么如何在中文vs2010上安装英文的silverlight4 tools呢?我就不说那么专业的什么修改安装包,修改什么什么配置了,我找了个最简单有效的办法告诉大家,如下:
打开注册表
命令:regedit
打开节点:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Setup\VS\BuildNumber
在此处增加一个”字符串值”,输入名称为“1033”,设置它的值为“10.0.30319”
ok
重新运行 silverlight4_tools.exe安装即可,安装完毕后,可以考虑删除掉该键值,具体有什么后遗症,待我明日到公司去测试下;

 

System.IO.Compression.ZipStorer
对zip文件进行设计一致的解压、压缩编程,支持UTF8编码,支持许多方法,下载请到:

ZipStorerDoc



 

程序代码
//函数参数查msdn
Page.RegisterClientScriptBlock() ;  //写到body里,响应runat=server里的控件方法
Page.RegisterStartupScript()  ;  //写到head里,响应runat=server里的控件方法
Response.Write()   ;                //随便写哪里   

© 2012 口袋代码人生 Suffusion theme by Sayontan Sinha

Switch to our mobile site