Dim ec1 As Boolean = btnEchoText.AttachEvent("onclick", AddressOf Me.OnEchoTextClicked)
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="Samples.Silverlight.CS.BasicCanvas;assembly=HtmlDOM1.dll" x:Name="rootCanvas" Height="500" Width="500" Loaded="OnLoaded" Background="Red" > </Canvas>
<Canvas x:Name="parentCanvas" xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Loaded="OnLoaded" x:Class="HtmlDOM1.BasicCanvas;assembly=ClientBin/HtmlDOM1.dll" Width="640" Height="480" Background="White" > </Canvas>
后台文件中添加一个方法,它的名称就是你在第一步中在XAML文件中指定的Loaded属性名称. 这个方法可以处理几乎所有初始化的任务, 创建和注册各种对象,关联事件等等.
cs
public void OnLoaded(object sender, EventArgs e)
VB
Public Sub OnLoaded(ByVal sender As Object, ByVal e As EventArgs)
为了在事件处理方法中能访问HTML DOM ,请创建一个私有的, module-level 类型的变量 HtmlDocument 然后给其添加引用赋值为一个代表 HTML page的对象,当然,这个HTML page是Sivleright程序的宿主.接下来的 Onloaded 方法中的代码演示了这个步骤.
cs
document = HtmlPage.Document;
VB
document = HtmlPage.Document
处理HTML DOM 元素的事件
在托管代码中得到HTML 元素的引用 . 想要实现这样的要求, 你可以使用刚创建的HTML document 对象的GetElementByID 方法,你只需要传入一个HTML elements的ID 进来就可以了. 接下来的 Onloaded 方法中的代码演示了如何得到HTML page中的 Echo Text button 的引用 .
cs
HtmlElement btnEchoText = document.GetElementByID("btnEchoText");
VB
Dim btnEchoText As HtmlElement = document.GetElementByID("btnEchoText")
添加事件处理. 想要添加一个按钮的 OnClick 事件处理程序, 你需要得到这个button的引用 (你可以参照第一步来得到). 你可以添加事件就像下面示例中的Onloaded 方法一样.
cs
bool ec1 = btnEchoText.AttachEvent("onclick", new Eventhanlder<HtmlEventArgs>(this.OnEchoTextClicked));
VB
Dim ec1 As Boolean = btnEchoText.AttachEvent("onclick", AddressOf Me.OnEchoTextClicked)
编写 event-handling 方法. 接下来的方法演示了如何申明一个私有方法来处理Echo Text button的事件 .
cs
private void OnEchoTextClicked(object sender, HtmlEventArgs e)
VB
Private Sub OnEchoTextClicked(ByVal sender As Object, ByVal e As HtmlEventArgs)
访问HTML DOM中的属性
使用HTML DOM 对象的属性来得到关于它的信息. 比如,你可以使用 HtmlPage 对象的某些属性来得到当前页的Uniform Resource Identifier (URI),就像下面OnGetPropertiesClicked 方法中的代码一样.
cs
string outputText = HtmlPage.DocumentUri.AbsolutePath + " - " + HtmlPage.CurrentBookmark;
VB
Dim outputText As String = HtmlPage.DocumentUri.AbsolutePath & " - " & _ HtmlPage.CurrentBookmark
给页面中的某些元素添加或改变属性值, 比如, 对于一个text box. 使用 SetAttribute 方法来设置已经和DOM element建立好引用关系的属性.接下来的OnGetPropertiesClicked 方法中的代码展示了指派URI串到第一步页面中得到的text box中.
cs
document.GetElementByID("txtOutputProperties").SetAttribute("value", outputText);
VB
document.GetElementByID("txtOutputProperties").SetAttribute("value", outputText)
在HTML DOM中调用方法
得到一个你想调用的方法的HTML DOM 元素的引用.
直接调用得到的 DOM 方法. 比如,下面的示例调用 HtmlPage 的Navigate 方法来在我们点Jump to MSN时转向到其它链接地址.
cs
private void OnJump(object sender, EventArgs e) { HtmlPage.Navigate("http://www.msn.com"); }
VB
Private Sub OnJump(ByVal sender As Object, ByVal e As EventArgs) HtmlPage.Navigate("http://www.msn.com") End Sub
| 第1页: 第1页 |