显示和建立PDF的开源.net库:http://www.pdfsharp.net
创建PDF的开源SilverLight库:http://silverpdf.codeplex.com/
显示PDF的的开源SilverLight代码:
http://www.codeproject.com/KB/silverlight/BlendPDFwithSilverlight.aspx
演示代码下载:点击下载此文件
显示和建立PDF的开源.net库:http://www.pdfsharp.net
创建PDF的开源SilverLight库:http://silverpdf.codeplex.com/
显示PDF的的开源SilverLight代码:
http://www.codeproject.com/KB/silverlight/BlendPDFwithSilverlight.aspx
演示代码下载:点击下载此文件
silverlight的一个项目代码,基本构架是Web Service+SilverLight控件构成,组成网络远程虚拟仪器的最佳微软解决方案。系统访问硬件有WebSerivice构成,提供清晰的接口供silverLight调用。
如下图所示,银光控件的类结构如下:由Canvas作为基类,所有的界面元素均集成于此类。SInstr类为主界面类,其由CtlPanel控制类,Wave波形显示类,Params参数配置类共同组合而成。
控件的界面如下:
银光控件演示 :需下载微软银光控件…
最近在尝试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安装即可,安装完毕后,可以考虑删除掉该键值,具体有什么后遗症,待我明日到公司去测试下;
程序代码
//函数参数查msdn
Page.RegisterClientScriptBlock() ; //写到body里,响应runat=server里的控件方法
Page.RegisterStartupScript() ; //写到head里,响应runat=server里的控件方法
Response.Write() ; //随便写哪里