创建新的事件处理程序方法
当使用 Windows Presentation Foundation 或 Silverlight 2 项目时,Microsoft Expression Blend 可以为空的事件处理程序方法生成代码,以便帮助您开始工作。
说明: |
---|
有关 Microsoft Silverlight 1.0 事件处理的信息,请参阅 Silverlight 1.0 概述和在 Silverlight 应用程序中创建控制 Storyboard 的按钮。另请参阅 Silverlight 脚本编写和鼠标事件(此链接可能指向英文页面)。 |
如果安装了 Microsoft Visual Studio 2008 Standard Edition 或更高版本,Expression Blend 将在 Visual Studio 2008 中打开项目,并打开代码隐藏文件,然后贴入空的事件处理程序方法。如果没有安装 Visual Studio 2008 Standard Edition 或更高版本,Expression Blend 便将空的事件处理程序方法复制到剪贴板中,以便您能够手动打开代码隐藏文件并贴入代码。
有关代码中的事件处理程序的详细信息,请参阅本用户指南中的事件处理和用户交互。有关在 Expression Blend 应用程序中不使用代码而创建交互式内容的信息,请参阅本用户指南中的触发器与用户交互性。
创建新的事件处理程序方法
在 Expression Blend 中打开项目。
在“项目”面板中的“文件”下,双击某个文档(如 Window1.xaml)以将其打开以供编辑。单击美工板右侧的“设计”选项卡,以确保处于“设计”视图中。
在“交互”面板中的“对象和时间线”下,选择要与现有的事件处理程序方法挂钩的元素。例如,如果您希望在单击按钮时移动某个矩形元素,请选择该按钮元素。该元素名称后面的背景会突出显示,以指示该元素已选中。
在“属性”面板中,单击“事件” 按钮。此时,将显示选定元素的所有可用事件的列表(按字母顺序排列)。
警告: 如果项目仍处于临时状态,则不会显示事件。例如,在单击“文件”和“全部保存”之前,新建的项目将存储在临时位置。在保存项目之后,您将能够查看并选择“事件”面板中的事件。此外,如果您已在“对象和时间线”下同时选定多个对象(例如,通过按住 Ctrl 键以选择多个对象),则事件将不会显示。
提示: 若要查看事件的简短说明,请将鼠标指针移到该事件的名称上。此时,将显示工具提示,并附有该事件的相关说明。您也可以在事件快速参考(此链接可能指向英文页面)中查看可用事件的列表以及这些事件的说明。
找到要添加编程逻辑的事件。例如,在矩形和按钮的示例中,应找到“MouseDown”事件。
有两种方法可以生成空的事件处理程序方法:
在事件名称旁边的文本框内双击。Expression Blend 将为事件处理程序方法生成默认名称,并将其输入到文本框中,然后生成与这个空的方法相对应的代码。
在事件名称旁边的文本框内键入名称,然后按 Enter 或单击其他位置,将焦点移出文本框。事件方法名必须以字母开头。如果代码隐藏文件中已没有该方法名,Expression Blend 将生成与空的方法相对应的代码并使用您键入的名称。
提示: 即使安装了 Visual Studio 2008,也可以对 Expression Blend 进行配置以使用剪贴板。在“工具”菜单上,单击“选项”按钮,然后单击“事件处理程序”。在“编辑”下,单击“仅限剪贴板”。
此时,Expression Blend 将执行下列某项操作:
如果安装了 Visual Studio 2008 Standard Edition 或更高版本,Expression Blend 将在 Visual Studio 2008 中打开项目,并打开代码隐藏文件,然后贴入空的事件处理程序方法。
如果没有安装 Visual Studio 2008 Standard Edition 或更高版本,Expression Blend 便将空的事件处理程序方法复制到剪贴板中,然后显示一个弹出窗口,说明您所能采取的后续操作。在这种情况下,您可以手动打开代码隐藏文件,以便将所复制的方法粘贴到窗口的类定义中,如下所示:
public partial class Window1 { public Window1() { this.InitializeComponent(); // Insert code required on object creation below this point. } private void Button_MouseDown(object sender, RoutedEventArgs e) { } }
说明: 如果已将某个应用程序(如“记事本”)映射到 .cs 或 .vb 文件,则可以在“项目”面板中的“文件”下,通过双击代码隐藏文件的名称以手动方式将其打开。Expression Blend 将在已映射的应用程序中打开该文件。
如果没有将应用程序映射到 .cs 或 .vb 文件,Expression Blend 将无法在外部打开该文件。若要打开该文件,请在 Windows 资源管理器中找到该文件(如果在 Expression Blend 中保存了项目,还可以单击“项目”菜单上的“浏览项目”),右键单击要编辑的 .cs 或 .vb 文件,选择“打开方式”,然后选择“记事本”(或其他编辑应用程序)。执行完上述操作之后,将可以通过 Expression Blend 中的“项目”面板手动打开代码隐藏文件。
打开代码隐藏文件并粘贴事件处理程序方法之后,就可以开始向方法中添加代码。为了完成这一步骤,可以添加下面的红色代码行,使得在单击按钮时显示一个消息框:
private void Button_MouseDown(object sender, RoutedEventArgs e) { MessageBox.Show("Hello!"); }
有关代码隐藏文件中的事件处理程序方法的示例,请参阅“欢迎屏幕”(单击“帮助”菜单上的“欢迎屏幕”)中提供的示例。
说明: 如果代码隐藏文件中没有“事件”面板中引用的事件处理程序方法,Expression Blend 将显示生成错误。如果看到这种错误,您可以判断事件处理程序方法名是否拼错,也可以在事件的文本框内双击以创建新的空事件处理程序方法。
在“事件”面板的文本框中删除或重命名事件处理程序方法时,Expression Blend 并不会从代码隐藏文件中删除原始方法。这是因为可能仍在其他位置使用该事件。如果 XAML 文件中并未引用代码隐藏文件中定义的事件处理程序方法,则不会显示生成错误。
说明: 如果要从代码隐藏文件引用 .xaml 文件中的元素,必须在 .xaml 文件中命名该元素。默认情况下,Expression Blend 中创建的元素并未命名。您可以在“交互”面板中的“对象和时间线”下,右键单击某个元素,然后再单击“重命名”来命名该元素。