在 Silverlight 应用程序中创建超链接
在 Microsoft Silverlight 1.0 应用程序中创建超链接与在 Windows Presentation Foundation (WPF) 应用程序中创建超链接略有不同。与 Silverlight 1.0 应用程序中的所有交互功能一样,将创建事件处理程序方法以响应用户操作,然后将 window 对象的 location 属性设置为新的 URL。
在 Silverlight 1 应用程序中创建超链接
在 Silverlight 1.0 项目的主 XAML 文档中,选择“工具箱”中的“画布” 控件,然后在美工板上绘制画布对象。
右键单击“对象和时间线”下的画布对象,然后选择“重命名”。为画布对象输入一个新名称,如“MyHyperlink”。
在“MyHyperlink”对象仍为选定状态下,打开“属性”面板。在“公共属性”下,将“Cursor”属性设置为“Hand”。当用户将指针移到“MyHyperlink”画布对象上时,指针将变为手的形状。
双击“MyHyperlink”对象以将其激活。该画布对象周围将显示一个黄色范围框,用于将该对象标识为已激活对象。将添加新的对象作为已激活对象的子对象。
从“工具箱”中选择“TextBlock” 控件,然后在“MyHyperlink”对象内绘制一个文本块对象。
确保此时正处于文本编辑模式(按 F2 进入)。将文本块中的内容更改为“链接”。按 Esc 退出文本编辑模式。
在“项目”面板中的“文件”下,双击 XAML 文档所对应的代码隐藏文件。例如,如果正在编辑的 XAML 文档名为“Page.xaml”,请双击“Page.xaml.js”文件。所对应的代码隐藏文件将在 Expression Blend 2 内部的 JavaScript 编辑器中打开。
已存在一个与事件处理程序挂钩的代码行示例,类似于下面这样:
rootElement.addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleMouseDown));
在该代码行的下面添加以下代码:
if (null != this.control.content.findName("MyHyperlink")) this.control.content.findName("MyHyperlink").addEventListener("MouseLeftButtonDown", Silverlight.createDelegate(this, this.handleHyperlink));
此代码将测试名为 MyHyperlink 的对象,如果存在该对象,便会添加一个名为 handleHyperlink 的事件处理程序方法来响应 MouseLeftButtonDown 事件。
代码隐藏文件已包含一个名为 handleMouseDown 的示例事件处理程序方法。请注意,在 handleLoad 方法的末尾有一个逗号 (,) 显示在最后一个大括号 (}) 的后面,但是 handleMouseDown 方法的最后一个大括号后未显示任何逗号。这是因为 handleMouseDown 是声明的最后一个方法。添加新方法时,请确保每个方法(最后一个方法除外)的最后一个大括号的后面都存在一个逗号。
最好是在 handleMouseDown 事件之前添加下面的事件处理程序方法:
handleHyperlink: function(sender, eventArgs) { window.location = "Http://www.microsoft.com"; },
此方法对用户在“MyHyperlink”画布对象内部单击鼠标左键的操作进行响应,并将浏览器重定向到 Http://www.microsoft.com 网站。
按 F5 以测试应用程序。单击“链接”文本以查看是否进行重定向。