怎样加一个WPF/E到你的网页中,一个典型的WPF/E有四部分组成:一个主页或是用于显示内容的Html页,一个 aghost.js 文件, a XAML 文件,和一个JavaScript 文件。这篇文章描述了如何创建一个WPF/E工程,或是用三步将WPF/E的内容加到Html文件中去。 以下是此章目录:
1. 在你开始前的准备
2. (1)安装
aghost.js
文件
3.
(
2
)在
Html
文件中创建一个WPF/E ActiveX 控件
4. (3)创建WPF/E内容文件
5. 增加额外的WPF/E内容
6. 工程例子
7. 下面是什么?
在你开始前的准备
在你创建WPF/E之前,你要做如下事情:
2
.一个
HTML
文件:你需要一个
HTML
文件去显示
WPF/E
的内容,用你自己的
HTML
文件
,
或是复制此处的这个。
3.
一个文本编辑器:你需要一个文本编辑器,例如
Notepad
,去编辑你的
HTML
文件。如果你想知道如何用
Visual Studio
编辑
WPF/E
工程,请参见附录:创建一个
Visual Studio WPF/E
工程。
第一步 安装aghost.js文件
aghost.js 文件是一个能帮助你在多种平台下显示WPF/E内容的JavaScript文件。
a.
复制
aghost.js 文件到刚才生成HTML页的文件夹:右键单击aghost.js 连接,选择"Save As..."将文件保存到刚才生成HTML页的同一文件夹。
b.
打开
HTML
在标记
<head>
处增加代码
.
如下代码:(如果你还没有
HTML
页右键单击此连接,
选择"Save As..."将文件保存到aghost.js 同一文件夹下。)
<
script
type
="text/javascript"
src
="aghost.js"
></
script
>
此时你的
HTML
页,应有如下元素:
<!
DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" xml:lang ="en" >
< head >
< title > A Sample HTML page </ title >
< script type ="text/javascript" src ="aghost.js" ></ script >
</ head >
< body >
</ body >
</ html >
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" xml:lang ="en" >
< head >
< title > A Sample HTML page </ title >
< script type ="text/javascript" src ="aghost.js" ></ script >
</ head >
< body >
</ body >
</ html >
第二步:在Html文件中创建一个WPF/E ActiveX 控件
为了显示
WPF/E
的内容,你需要
在
Html
文件中创建一个WPF/E ActiveX 控件。
a.
在标签
<body>
下,你想显示
WPF/E
内容的地方,增加如下三行代码,创建
HTML
元素。
<!--
Where the WPF/E ActiveX control will go
-->
< div id ="agControl1Host" >
</ div >
< div id ="agControl1Host" >
</ div >
你可以改变标签<div>的ID,但是同时你要在下一步修改agHost的第一个参数以保证与此处的ID相同。
上述工作完成后,增加如下HTML + script去创建一个WPF/E ActiveX控件。
<
script
type
="text/javascript"
>
...
// Create the WPF/E ActiveX control.
// The technique here enables your WPF/E content to receive
// input before its ActiveX control is clicked.
new agHost(
"agControl1Host", // hostElementID (The HTML element inside of which
// the WPF/E ActiveX control is inserted.
// This element is usually a <div>)
// If you change the name of the host HTML element,
//change it here too.
"agControl1", // The ID of the WPF/E ActiveX control to create.
"300px", // The width of the control.
"300px", // The height of the control.
"#D6D6D6", // The background color of the control.
null, // SourceElement (name of script tag containing XAML)
"myxaml.xaml", // The uri of the source file that
// contains the WPF/E content.
"false", // IsWindowless
"30", // MaxFrameRate
null // OnError handler.
// You can set this to a method name (no quotes).
);
// Create a global variable for the WPF/E ActiveX control,
// to use when you want to retrieve named XAML elements.
var agControl = document.getElementById("agControl1");
</ script >
// Create the WPF/E ActiveX control.
// The technique here enables your WPF/E content to receive
// input before its ActiveX control is clicked.
new agHost(
"agControl1Host", // hostElementID (The HTML element inside of which
// the WPF/E ActiveX control is inserted.
// This element is usually a <div>)
// If you change the name of the host HTML element,
//change it here too.
"agControl1", // The ID of the WPF/E ActiveX control to create.
"300px", // The width of the control.
"300px", // The height of the control.
"#D6D6D6", // The background color of the control.
null, // SourceElement (name of script tag containing XAML)
"myxaml.xaml", // The uri of the source file that
// contains the WPF/E content.
"false", // IsWindowless
"30", // MaxFrameRate
null // OnError handler.
// You can set this to a method name (no quotes).
);
// Create a global variable for the WPF/E ActiveX control,
// to use when you want to retrieve named XAML elements.
var agControl = document.getElementById("agControl1");
</ script >
这段脚本许多参数都可以自定义,例如:ActiveX控件的宽与高(也可以是百分比),包括你WPF/E内容在内的XAML文件名,这个控件是否是窗体。
第三步 创建你的WPF/E内容文件
既然配置好了你的
HTML
文件,是创建内容的时候了。
a.
在相同的目录下,创建一个空白的叫做
"myxaml.xaml"文件,如果你在上一步改变了参数,请改变此处的文件名以予之相配。
b.
(选择项)如果你的
WPF/E
工程包括脚本,创建一个
JavaScript
文件,并且在第一步的
<script></script>
标签后,增加如下代码:
<
script
type
="text/javascript"
src
="my-script.js"
></
script
>
增加额外的WPF/E内容
如果你想创建更多的WPF/E ActiveX控件,重复2、3步,注意ActiveX控件命名的唯一性。
例子工程
如果你遇到错误,或是没有看以上内容,复制以下文件到同一目录下。
·
SampleProject.html
·
SampleProject.xaml
·
SampleProject.js
·
aghost.js
下面是什么
下一部分,创建一个XAML文件,你将学会怎样在XAML文件中增加内容。
注:由于此处无法上传文件,请到
http://go.microsoft.com/fwlink/?LinkID=77792&clcid=0x409处下载
SDK(此文中文件均在Sample文件夹下)