创建新的事件处理程序方法

此页适用于 WPF 和 Silverlight 2

当使用 Windows Presentation Foundation 或 Silverlight 2 项目时,Microsoft Expression Blend 可以为空的事件处理程序方法生成代码,以便帮助您开始工作。

Cc294821.alert_note(zh-cn,Expression.10).gif说明:

有关 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 应用程序中不使用代码而创建交互式内容的信息,请参阅本用户指南中的触发器与用户交互性

创建新的事件处理程序方法

  1. 在 Expression Blend 中打开项目。

  2. 在“项目”面板中的“文件”下,双击某个文档(如 Window1.xaml)以将其打开以供编辑。单击美工板右侧的“设计”选项卡,以确保处于“设计”视图中。

  3. 在“交互”面板中的“对象和时间线”下,选择要与现有的事件处理程序方法挂钩的元素。例如,如果您希望在单击按钮时移动某个矩形元素,请选择该按钮元素。该元素名称后面的背景会突出显示,以指示该元素已选中。

  4. 在“属性”面板中,单击“事件”Cc294821.6c67bb3b-e8a2-4a63-bad5-54d5c15b04dd(zh-cn,Expression.10).png 按钮。此时,将显示选定元素的所有可用事件的列表(按字母顺序排列)。

    Cc294821.alert_caution(zh-cn,Expression.10).gif警告:

    如果项目仍处于临时状态,则不会显示事件。例如,在单击“文件”和“全部保存”之前,新建的项目将存储在临时位置。在保存项目之后,您将能够查看并选择“事件”面板中的事件。此外,如果您已在“对象和时间线”下同时选定多个对象(例如,通过按住 Ctrl 键以选择多个对象),则事件将不会显示。

    Cc294821.alert_tip(zh-cn,Expression.10).gif提示:

    若要查看事件的简短说明,请将鼠标指针移到该事件的名称上。此时,将显示工具提示,并附有该事件的相关说明。您也可以在事件快速参考(此链接可能指向英文页面)中查看可用事件的列表以及这些事件的说明。

  5. 找到要添加编程逻辑的事件。例如,在矩形和按钮的示例中,应找到“MouseDown”事件。

  6. 有两种方法可以生成空的事件处理程序方法:

    • 在事件名称旁边的文本框内双击。Expression Blend 将为事件处理程序方法生成默认名称,并将其输入到文本框中,然后生成与这个空的方法相对应的代码。

    • 在事件名称旁边的文本框内键入名称,然后按 Enter 或单击其他位置,将焦点移出文本框。事件方法名必须以字母开头。如果代码隐藏文件中已没有该方法名,Expression Blend 将生成与空的方法相对应的代码并使用您键入的名称。

    Cc294821.alert_tip(zh-cn,Expression.10).gif提示:

    即使安装了 Visual Studio 2008,也可以对 Expression Blend 进行配置以使用剪贴板。在“工具”菜单上,单击“选项”按钮,然后单击“事件处理程序”。在“编辑”下,单击“仅限剪贴板”。

  7. 此时,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)      {      }
      }
    
    Cc294821.alert_note(zh-cn,Expression.10).gif说明:

    如果已将某个应用程序(如“记事本”)映射到 .cs 或 .vb 文件,则可以在“项目”面板中的“文件”下,通过双击代码隐藏文件的名称以手动方式将其打开。Expression Blend 将在已映射的应用程序中打开该文件。

    如果没有将应用程序映射到 .cs 或 .vb 文件,Expression Blend 将无法在外部打开该文件。若要打开该文件,请在 Windows 资源管理器中找到该文件(如果在 Expression Blend 中保存了项目,还可以单击“项目”菜单上的“浏览项目”),右键单击要编辑的 .cs 或 .vb 文件,选择“打开方式”,然后选择“记事本”(或其他编辑应用程序)。执行完上述操作之后,将可以通过 Expression Blend 中的“项目”面板手动打开代码隐藏文件。

  8. 打开代码隐藏文件并粘贴事件处理程序方法之后,就可以开始向方法中添加代码。为了完成这一步骤,可以添加下面的红色代码行,使得在单击按钮时显示一个消息框:

      private void Button_MouseDown(object sender, RoutedEventArgs e)
      {
          MessageBox.Show("Hello!");
      }
    

    有关代码隐藏文件中的事件处理程序方法的示例,请参阅“欢迎屏幕”(单击“帮助”菜单上的“欢迎屏幕”)中提供的示例。

    Cc294821.alert_note(zh-cn,Expression.10).gif说明:

    如果代码隐藏文件中没有“事件”面板中引用的事件处理程序方法,Expression Blend 将显示生成错误。如果看到这种错误,您可以判断事件处理程序方法名是否拼错,也可以在事件的文本框内双击以创建新的空事件处理程序方法。

    在“事件”面板的文本框中删除或重命名事件处理程序方法时,Expression Blend 并不会从代码隐藏文件中删除原始方法。这是因为可能仍在其他位置使用该事件。如果 XAML 文件中并未引用代码隐藏文件中定义的事件处理程序方法,则不会显示生成错误。

    Cc294821.alert_note(zh-cn,Expression.10).gif说明:

    如果要从代码隐藏文件引用 .xaml 文件中的元素,必须在 .xaml 文件中命名该元素。默认情况下,Expression Blend 中创建的元素并未命名。您可以在“交互”面板中的“对象和时间线”下,右键单击某个元素,然后再单击“重命名”来命名该元素。