XAML之外,.NET Form上的HTML文档对象模型

XAML之外,.NET Form上的HTML文档对象模型

Author: Liang Bo

Brianliangx@hotmail.com

 

我们希望一个应用程序的UI是运行时可编辑的,这样对它的修改就可以随时进行。微软在Longhorn编程模型中使用XAML提供用户界面的描述机制,但现在HTML网页也具备这样的特征。相较传统的Windows Form而言,网页更加绚丽、多彩、富于动感,当然我们并不仅仅需要美观,我们要使得网页可以和窗口中的其他部分一起交互协同,和普通的窗口控件没什么两样。

再继续本文的阅读之前作者希望您具备以下技术基础:(1)熟悉至少一种.NET语言(2)对网页的标记有一些了解并能够使用工具如Frontpage or Dreamweaver制作[这不是必需的,即使您不熟悉网页制作,可能您的朋友中间有人精于此道](3Javascript或者VBScript脚本基础[这也不是必需的,您可以参考文章的代码示例来编写他们]

最后,您需要获得TZ Web-Style Form Control控件。它提供了扩展的文档对象模型,帮助开发者获得所浏览网页的宿主窗口对象,并调用方法,传递参数。您还可以使用应用程序的右键菜单替换掉网页的右键菜单,使应用程序的风格保持一致。您可以在这里下载该控件:

http://www.apptemplate.com/downloads/TZWBC.asp

 

1.  使用HTML控件传递参数给.NET Form

我们先制作一个简单的网页,使用TZ Web-Style Control来浏览它,并填满Form窗口作为用户界面。除了背景图片之外,我们

(1)       在网页中增加两个单行文本框控件,分别命名为txtMsgTitle, txtMsgContent,增加按钮,代码如下:

<INPUT id="Button22" style="WIDTH: 200px; HEIGHT: 32px" type="button" value="Message Show"

                              name="Button2" language="javascript" οnclick="return Button2_onclick()">

 

2 HTML文件的<head></head>标签中增加如下代码:

<script language="javascript" id="clientEventHandlersJS">

<!- -

         window.external.MsgBoxShow(txtMsgTitle.value,txtMsgContent.value);

//-->

 

window.external获得浏览器控件的宿主Form对象,调用它的MsgBoxShow方法,您也可以使用如下代码:

/********************************

var appobj;

function window_onload() {

appobj = window.external;               //Get Host Application Object

appobj.MsgBoxShow(txtMsgTitle.value,txtMsgContent.value);

********************************/

 

3 Form1窗口中增加一个TZ Web-Style Form Control,设置Dock属性为Fill,设置URL_Oppositeindex.htm,这样他就可以浏览在应用程序同一目录下的index.htm网页。在Form1.cs中增加函数

         public void MsgBoxShow(String Title, String content)

         {             MessageBox.Show(Title,content,System.Windows.Forms.MessageBoxButtons.YesNo,System.Windows.Forms.MessageBoxIcon.Information);

         }

注意,方法必须声明为Public

将应用程序的可执行文件和网页文件放置在同一个目录下,运行:

pic1 

2.  一个Microsoft Money风格的应用

在这个应用中,我们在窗口的顶部使用了一个TZ Web-Style Form Control,用它来浏览一个本地网页,具体代码请参看附件或发电子邮件向我索取。在网页中我插入了一个6*2的表格放置翻转图片(页面调入时显示第一幅图片,鼠标停靠后显示第二幅图片)和文字。为了使表格随着窗口的变化(严格意义上来讲是随着控件大小的变化)而变化充满窗口,我们设定表格的宽高为100%

  <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" background="background.png">

同时为了使网页填满浏览器控件而不留下空白,我们设定body标记的相应属性:

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

当单击”account list”翻转图片按钮时,调用宿主.NET窗口的函数来填充下部的Listview。在这里我们使用了自定义菜单替换了网页的上下文菜单,使得整个应用浑然一体。

p2结合HTML, DHMTL, VBScript, Javascript以及图像处理工具(如Photoshop),开发人员可以设计出更加丰富多彩的用户界面。如果这些网页是来自远程的ASP/ASPX/JSP动态网页,应用程序的可维护性会变得更加容易,效果惊人。

 

文中所提到的TZ Web-Style Control可以到这里下载:

http://www.apptemplate.com/downloads/TZWBC.asp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值