RoutedEventHandler 委托
.NET Framework 类库
RoutedEventHandler 委托

更新:2007 年 11 月

表示将处理各种路由事件的方法,这些路由事件不包含除所有路由事件共有数据之外的其他特定事件数据。

命名空间:  System.Windows
程序集:  PresentationCore(在 PresentationCore.dll 中)

Visual Basic(声明)
Public Delegate Sub RoutedEventHandler ( _
    sender As Object, _
    e As RoutedEventArgs _
)
Visual Basic (用法)
Dim instance As New RoutedEventHandler(AddressOf HandlerMethod)
C#
public delegate void RoutedEventHandler(
    Object sender,
    RoutedEventArgs e
)
Visual C++
public delegate void RoutedEventHandler(
    Object^ sender, 
    RoutedEventArgs^ e
)
J#
/** @delegate */
public delegate void RoutedEventHandler(
    Object sender,
    RoutedEventArgs e
)
JScript
JScript 不支持委托。
XAML
在 XAML 中,可以使用委托,但不能自行定义。

参数

sender
类型:System..::.Object

附加此事件处理程序的对象。

e
类型:System.Windows..::.RoutedEventArgs

事件数据。

RoutedEventHandler 委托用于不在事件数据内报告事件特定信息的任何路由事件。这类路由事件有很多;显著示例包括 ClickLoaded

与一般 公共语言运行时 (CLR) 事件相比,为路由事件编写处理程序时最值得注意的区别是,不能将事件的 sender(一种元素,在此元素处附加和调用处理程序)视为必须是事件的源。在事件数据中,源被报告为属性(Source)。在通过元素树遍历路由事件的过程中,sender Source 之间的区别是路由到不同元素的事件的结果。

如果您特意对直接或冒泡路由事件不感兴趣,并只想处理首先引发路由事件的元素上的路由事件,则您可以使用 senderSource 进行对象引用。在这种情况下,senderSource 是相同的对象。

如果您确实想利用路由事件的固有功能,并相应地编写您的处理程序,则编写事件处理程序时,您将使用的事件数据的两个最重要属性为 SourceHandled

对于输入事件和 WPF 控件类的某些组合,引发事件的元素不是有机会处理该事件的第一个元素。如果输入事件有事件的预览版,则元素树的根具有第一机会,并可在共享事件数据中将 Handled 设置为 true,还可影响如何将输入事件报告至其事件路由中的剩余元素。预览处理行为可能使特定路由事件看起来未像所希望地那样被引发。有关更多信息,请参见 预览事件输入概述

本示例演示如何在事件处理程序中查找源元素。

下面的示例演示一个在代码隐藏文件中声明的 Click 事件处理程序。当用户单击该处理程序所附加到的按钮时,处理程序将更改属性值。处理程序代码使用在事件参数中报告的路由事件数据的 Source 属性来更改 Source 元素的 Width 属性值。

C#
<Button Click="HandleClick">Button 1</Button>
Visual Basic
Private Sub HandleClick(ByVal sender As Object, ByVal e As RoutedEventArgs)
    'You must cast the object as a Button element, or at least as FrameworkElement, to set Width
    Dim srcButton As Button
    srcButton = CType(e.Source, Button)
    srcButton.Width = 200
End Sub
C#
        void HandleClick(object sender, RoutedEventArgs e)
        {
            // You must cast the sender object as a Button element, or at least as FrameworkElement, to set Width
            Button srcButton = e.Source as Button;
            srcButton.Width = 200;
        }

有关完整示例,请参见 在事件处理程序中查找源元素的示例

Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0
社区内容   什么是社区内容?
添加新内容 RSS  批注
Processing
Page view tracker