ContentElement.AddHandler Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu.
Přetížení
AddHandler(RoutedEvent, Delegate) |
Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu. |
AddHandler(RoutedEvent, Delegate, Boolean) |
Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu. Zadejte |
AddHandler(RoutedEvent, Delegate)
Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu.
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)
Parametry
- routedEvent
- RoutedEvent
Identifikátor směrované události, která má být zpracována.
- handler
- Delegate
Odkaz na implementaci obslužné rutiny.
Implementuje
Poznámky
Stejnou obslužnou rutinu pro stejnou událost můžete přidat vícekrát bez vyvolání výjimky. Obslužná rutina je však ve skutečnosti vyvolána vícekrát, když je událost zpracována. Proto zvažte, jak může mít toto chování vedlejší účinky, které by měly být zohledněny v implementaci obslužné rutiny.
Tuto metodu obvykle používáte k poskytnutí implementace "add" příslušenství pro model přístupu k událostem Microsoft .NET vlastní směrované události.
Platí pro
AddHandler(RoutedEvent, Delegate, Boolean)
Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu. Zadejte handledEventsToo
, jestli true
má být zadaná obslužná rutina vyvolána pro směrovanou událost, která již byla označena jako zpracována jiným prvkem podél trasy události.
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)
Parametry
- routedEvent
- RoutedEvent
Identifikátor události the.routed, která má být zpracována.
- handler
- Delegate
Odkaz na implementaci obslužné rutiny.
- handledEventsToo
- Boolean
true
zaregistrovat obslužnou rutinu tak, aby byla vyvolána i v případě, že je směrovaná událost označena jako zpracovávaná v datech události; false
k registraci obslužné rutiny s výchozí podmínkou, že nebude vyvolána, pokud je směrovaná událost již označena jako zpracována.
Výchozí formát je false
.
Pravidelně nepožadujte o opětovné zpracování směrované události.
Příklady
Následující příklad implementuje obslužnou rutinu vyvolanou u Initialized události na stránce, která připojí definovanou obslužnou rutinu k jednomu z pojmenovaných prvků na stránce pomocí handledEventsToo
true
. Tato obslužná rutina by byla vyvolána i v případě, že jiný prvek na trase označil data sdílené události jako zpracovávaná před dosažením elementu zpracování v trase.
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
Poznámky
Praktické zpracování vstupních událostí nízké úrovně je složitý úkol. Mnoho ovládacích prvků implementuje chování, kdy je určitá událost označena jako zpracována a je nahrazena jinou intuitivnější událostí. Obecně platí, že ovládací prvek označí vstupní událost platformy jako zpracovávanou pouze v případě, že k tomu existuje nějaký záměr návrhu. V některých scénářích nemusí být tyto záměry návrhu to, co vaše konkrétní zpracování vstupní události vyžaduje. Pro tyto scénáře je vhodné zaregistrovat obslužné rutiny handledEventsToo
true
. Ale neměli byste to dělat rutinně. Vyvolání obslužných rutin v reakci na všechny události, i když jsou zpracovány, zkomplikuje vlastní logiku zpracování událostí aplikace. Pokud je logika obslužné rutiny podstatná, může dojít ke snížení výkonu. U již zpracovaných událostí byste si měli vyhraďte použití obslužných rutin pro situace, kdy jste během procesu vývoje zjistili, že určité ovládací prvky zpracovávají události, které stále chcete zpracovat pomocí logiky aplikace.
Další technikou, jak se vyhnout chování třídy zpracování určitých kombinací řízení událostí, je použití alternativní verze Preview dané události. Pokud MouseLeftButtonDown je například označeno zpracováním třídy, můžete místo toho přidat obslužné rutiny.PreviewMouseLeftButtonDown
Stejnou obslužnou rutinu pro stejnou událost můžete přidat vícekrát bez vyvolání výjimky. Obslužná rutina je však ve skutečnosti vyvolána vícekrát, když je událost zpracována. Proto zvažte, jak může mít toto chování vedlejší účinky, které by měly být zohledněny v implementaci obslužné rutiny.
Tuto metodu obvykle používáte k poskytnutí implementace "add" příslušenství pro model přístupu k událostem Microsoft .NET vlastní směrované události.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro