ContentElement.AddHandler Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee voegt u een gerouteerde gebeurtenis-handler toe voor een opgegeven gerouteerde gebeurtenis en voegt u de handler toe aan de handlerverzameling op het huidige element.
Overloads
| Name | Description |
|---|---|
| AddHandler(RoutedEvent, Delegate) |
Hiermee voegt u een gerouteerde gebeurtenis-handler toe voor een opgegeven gerouteerde gebeurtenis en voegt u de handler toe aan de handlerverzameling op het huidige element. |
| AddHandler(RoutedEvent, Delegate, Boolean) |
Hiermee voegt u een gerouteerde gebeurtenis-handler toe voor een opgegeven gerouteerde gebeurtenis en voegt u de handler toe aan de handlerverzameling op het huidige element. Geef |
AddHandler(RoutedEvent, Delegate)
Hiermee voegt u een gerouteerde gebeurtenis-handler toe voor een opgegeven gerouteerde gebeurtenis en voegt u de handler toe aan de handlerverzameling op het huidige element.
public:
virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler(System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)
Parameters
- routedEvent
- RoutedEvent
Een id voor de gerouteerde gebeurtenis die moet worden verwerkt.
- handler
- Delegate
Een verwijzing naar de handler-implementatie.
Implementeringen
Opmerkingen
U kunt dezelfde handler meerdere keren voor dezelfde gebeurtenis toevoegen zonder een uitzondering op te geven. De handler wordt echter meerdere keren aangeroepen wanneer de gebeurtenis wordt verwerkt. Overweeg daarom hoe dit gedrag bijwerkingen kan hebben die moeten worden verwerkt in uw handler-implementatie.
Doorgaans gebruikt u deze methode om de implementatie van de 'add'-accessor te bieden voor het Microsoft .NET gebeurtenistoegangspatroon van een aangepaste gerouteerde gebeurtenis.
Van toepassing op
AddHandler(RoutedEvent, Delegate, Boolean)
Hiermee voegt u een gerouteerde gebeurtenis-handler toe voor een opgegeven gerouteerde gebeurtenis en voegt u de handler toe aan de handlerverzameling op het huidige element. Geef handledEventsToo op of true de opgegeven handler moet worden aangeroepen voor gerouteerde gebeurtenis die al is gemarkeerd als afgehandeld door een ander element langs de gebeurtenisroute.
public:
void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler(System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)
Parameters
- routedEvent
- RoutedEvent
Een id voor de.routed-gebeurtenis die moet worden verwerkt.
- handler
- Delegate
Een verwijzing naar de handler-implementatie.
- handledEventsToo
- Boolean
true om de handler zodanig te registreren dat deze wordt aangeroepen, zelfs wanneer de gerouteerde gebeurtenis in de gebeurtenisgegevens is gemarkeerd; false om de handler te registreren met de standaardvoorwaarde die niet wordt aangeroepen als de gerouteerde gebeurtenis al is gemarkeerd als afgehandeld.
De standaardwaarde is false.
Vraag niet regelmatig om een gerouteerde gebeurtenis opnieuw in te voeren.
Voorbeelden
In het volgende voorbeeld wordt een handler geïmplementeerd die wordt aangeroepen op de Initialized gebeurtenis op een pagina die een gedefinieerde handler koppelt aan een van de benoemde elementen op de pagina met behulp van handledEventsTootrue. Deze handler wordt aangeroepen, zelfs als een ander element langs de route de gedeelde gebeurtenisgegevens heeft gemarkeerd zoals verwerkt voordat het verwerkingselement in de route wordt bereikt.
void PrimeHandledToo(object sender, EventArgs e)
{
dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Private Sub PrimeHandledToo(ByVal sender As Object, ByVal e As EventArgs)
dpanel2.AddHandler(Button.ClickEvent, New RoutedEventHandler(AddressOf GetHandledToo), True)
End Sub
Opmerkingen
Het verwerken van invoergebeurtenissen op laag niveau is een complexe taak. Veel besturingselementen implementeren gedrag waarbij een bepaalde gebeurtenis wordt gemarkeerd als afgehandeld en wordt vervangen door een andere intuïtievere gebeurtenis. Over het algemeen markeert een besturingselement alleen een platforminvoergebeurtenis zoals verwerkt als er een ontwerpintentie is om dit te doen. In bepaalde scenario's zijn deze ontwerpintenties mogelijk niet wat uw specifieke verwerking van de invoer gebeurtenis vereist. Het is voor deze scenario's dat het registreren van handlers bij handledEventsToo waar true nodig is. Maar dit moet je niet regelmatig doen. Het aanroepen van handlers in reactie op alle gebeurtenissen, zelfs als deze worden verwerkt, maakt het verwerken van uw eigen toepassingsgebeurtenislogica ingewikkeld. Mogelijk ziet u een afname van de prestaties als de handlerlogica aanzienlijk is. U moet het gebruik van het koppelen van handlers reserveren voor al afgehandelde gebeurtenissen voor situaties waarin u al hebt gedetecteerd tijdens het ontwikkelingsproces dat bepaalde besturingselementen gebeurtenissen verwerken die u nog steeds wilt verwerken met toepassingslogica.
Een andere techniek voor het voorkomen van het gedrag van klasseafhandeling van bepaalde combinaties van gebeurtenisbeheer is het gebruik van het preview-alternatief van die gebeurtenis. Als MouseLeftButtonDown deze bijvoorbeeld is gemarkeerd door klasseafhandeling, kunt u in plaats daarvan handlers PreviewMouseLeftButtonDown toevoegen.
U kunt dezelfde handler meerdere keren voor dezelfde gebeurtenis toevoegen zonder een uitzondering op te geven. De handler wordt echter meerdere keren aangeroepen wanneer de gebeurtenis wordt verwerkt. Overweeg daarom hoe dit gedrag bijwerkingen kan hebben die moeten worden verwerkt in uw handler-implementatie.
Doorgaans gebruikt u deze methode om de implementatie van de 'add'-accessor te bieden voor het Microsoft .NET gebeurtenistoegangspatroon van een aangepaste gerouteerde gebeurtenis.