Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

RoutedEvent-Klasse

Stellt ein Routingereignis dar, identifiziert es und deklariert seine Merkmale.

System.Object
  System.Windows.RoutedEvent

Namespace:  System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS für XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[TypeConverterAttribute("System.Windows.Markup.RoutedEventConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public sealed class RoutedEvent
<object property="eventName"/>
- or -
<object property="type.eventName"/>

XAML-Werte

eventName

Ein nicht qualifizierter Ereignisname, der der Name-Eigenschaft des RoutedEvent-Felds entspricht, nicht der tatsächliche Membername des RoutedEvent-Bezeichnerfelds in einem Typ. Ohne Qualifizierung muss eventName ein Ereignis so benennen, wie es in dem Typ vorhanden ist, bei dem es sich um den TargetType des aktuellen Stils mit dem EventSetter oder EventTrigger handelt.

type

Der Typ, der zum Qualifizieren des Ereignisnamens verwendet werden soll. Bei der Bereitstellung ohne Präfix wird erwartet, dass Typ ein Typ innerhalb des Standard-XAML-Namespaces ist und einem vorhandenen CLR-Typ zugeordnet werden kann. Für benutzerdefinierte Ereignisse oder Ereignisse, die für Typen außerhalb des Standard-XAML-Namespaces sind, kann die Zeichenfolge für Typ für einen zugeordneten XAML-Namespace ein Präfix einschließen. Dieser XAML-Namespace sollte den XAML-Typ enthalten, der einem unterstützenden CLR-Typ zugeordnet werden kann. Dieser CLR-Typ sollte den gewünschten Routingereignisbezeichner definieren. Ausführliche Informationen zur XAML-Namespacezuordnung finden Sie unter XAML-Namespaces und Namespacezuordnung für WPF-XAML.

Der RoutedEvent-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche EigenschaftHandlerTypeRuft den Handlertyp des Routingereignisses ab.
Öffentliche EigenschaftNameRuft den kennzeichnenden Namen des Routingereignisses ab.
Öffentliche EigenschaftOwnerTypeRuft den registrierten Besitzertyp des Routingereignisses ab.
Öffentliche EigenschaftRoutingStrategyRuft die Routingstrategie des Routingereignisses ab.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeAddOwnerOrdnet dem durch eine RoutedEvent-Instanz dargestellten Routingereignis einen anderen Besitzertyp zu und aktiviert das Routing vom Ereignis und seiner Behandlung.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeToStringGibt die Zeichenfolgendarstellung für dieses RoutedEvent zurück. (Überschreibt Object.ToString().)
Zum Seitenanfang

Diese Klasse enthält die Eigenschaften Name, RoutingStrategy, HandlerType und OwnerType. Keiner dieser Member kann NULL-Werte haben.

Diese Klasse verfügt über eine XAML-Verwendung, die ausschließlich zum Bereitstellen des Werts der RoutedEvent-Eigenschaft eines EventTrigger (oder einer abgeleiteten Klasse) oder der Event-Eigenschaft eines EventSetter (oder einer abgeleiteten Klasse) vorgesehen ist. Weitere Informationen zu EventTrigger, EventSetter und die XAML-Verwendungen für diese Klassen finden Sie unter Übersicht über Routingereignisse.

Damit Ihr benutzerdefiniertes Ereignis das Ereignisrouting unterstützt, müssen Sie mithilfe der RegisterRoutedEvent-Methode ein RoutedEvent registrieren. Dieses Beispiel zeigt die Grundlagen der Erstellung eines benutzerdefinierten Routingereignisses.

Wie im folgenden Beispiel gezeigt, registrieren Sie zuerst ein RoutedEvent, indem Sie die RegisterRoutedEvent-Methode verwenden. Der Konvention nach muss der statische Feldname RoutedEvent auf das Suffix Event enden. In diesem Beispiel hat das Ereignis den Namen Tap, und die Routingstrategie für das Ereignis lautet Bubble. Nach dem Registrierungsaufruf können Sie für das Ereignis common language runtime (CLR)-Ereignisaccessoren zum Hinzufügen und Entfernen angeben.

Beachten Sie, dass, obwohl das Ereignis in diesem Beispiel mithilfe der virtuellen OnTap-Methode ausgelöst wird, es von Ihren jeweiligen Anforderungen abhängt, wie Sie das Ereignis auslösen und wie das Ereignis auf Änderungen reagiert.

Beachten Sie auch, dass in diesem Beispiel praktisch eine gesamte Unterklasse von Button implementiert wird. Diese Unterklasse wird als separate Assembly erstellt und dann auf einer Extensible Application Markup Language (XAML)-Seite als benutzerdefinierte Klasse instanziiert. Auf diese Weise soll veranschaulicht werden, dass als Unterklassen implementierte Steuerelemente in Strukturen eingefügt werden können, die sich aus anderen Steuerelementen zusammensetzen, und dass benutzerdefinierte Ereignisse dieser Steuerelemente in diesem Fall über dieselben Ereignisroutingfunktionen wie systemeigene Windows Presentation Foundation (WPF)-Elemente verfügen.


Public Class MyButtonSimple
    Inherits Button

    ' Create a custom routed event by first registering a RoutedEventID
    ' This event uses the bubbling routing strategy
    Public Shared ReadOnly TapEvent As RoutedEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyButtonSimple))

    ' Provide CLR accessors for the event
    Public Custom Event Tap As RoutedEventHandler
        AddHandler(ByVal value As RoutedEventHandler)
            Me.AddHandler(TapEvent, value)
        End AddHandler

        RemoveHandler(ByVal value As RoutedEventHandler)
            Me.RemoveHandler(TapEvent, value)
        End RemoveHandler

        RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
            Me.RaiseEvent(e)
        End RaiseEvent
    End Event

    ' This method raises the Tap event
    Private Sub RaiseTapEvent()
        Dim newEventArgs As New RoutedEventArgs(MyButtonSimple.TapEvent)
        MyBase.RaiseEvent(newEventArgs)
    End Sub

    ' For demonstration purposes we raise the event when the MyButtonSimple is clicked
    Protected Overrides Sub OnClick()
        Me.RaiseTapEvent()
    End Sub

End Class



public class MyButtonSimple: Button
{
    // Create a custom routed event by first registering a RoutedEventID
    // This event uses the bubbling routing strategy
    public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent(
        "Tap", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyButtonSimple));

    // Provide CLR accessors for the event
    public event RoutedEventHandler Tap
    {
            add { AddHandler(TapEvent, value); } 
            remove { RemoveHandler(TapEvent, value); }
    }

    // This method raises the Tap event
    void RaiseTapEvent()
    {
            RoutedEventArgs newEventArgs = new RoutedEventArgs(MyButtonSimple.TapEvent);
            RaiseEvent(newEventArgs);
    }
    // For demonstration purposes we raise the event when the MyButtonSimple is clicked
    protected override void OnClick()
    {
        RaiseTapEvent();
    }

}



<Window  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:SDKSample;assembly=SDKSampleLibrary"
    x:Class="SDKSample.RoutedEventCustomApp"

    >
    <Window.Resources>
      <Style TargetType="{x:Type custom:MyButtonSimple}">
        <Setter Property="Height" Value="20"/>
        <Setter Property="Width" Value="250"/>
        <Setter Property="HorizontalAlignment" Value="Left"/>
        <Setter Property="Background" Value="#808080"/>
      </Style>
    </Window.Resources>
    <StackPanel Background="LightGray">
	    <custom:MyButtonSimple Name="mybtnsimple" Tap="TapHandler">Click to see Tap custom event work</custom:MyButtonSimple>
    </StackPanel>
</Window>


Tunneling-Ereignisse werden auf dieselbe Weise erstellt, wobei RoutingStrategy im Registrierungsaufruf jedoch auf Tunnel gesetzt ist. Der Konvention nach werden Tunneling-Ereignisse in WPF mit dem Präfix "Preview" versehen.

Ein Beispiel zur Funktionsweise von Bubbling-Ereignissen finden Sie unter Gewusst wie: Behandeln eines Routingereignisses.

.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft