UIElement.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é rutiny v aktuálním prvku.
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é rutiny v aktuálním prvku. |
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é rutiny v aktuálním prvku. 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é rutiny v aktuálním prvku.
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á se má zpracovat.
- 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 vyvolána vícekrát při zpracování události. Proto zvažte, jak toto chování může mít vedlejší účinky, které by měly být zohledněny v implementaci obslužné rutiny.
Tuto metodu obvykle používáte k poskytnutí implementace přístupového objektu "add" 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é rutiny v aktuálním prvku. Zadejte handledEventsToo
jako true
, aby byla 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 směrované události, která se má zpracovat.
- handler
- Delegate
Odkaz na implementaci obslužné rutiny.
- handledEventsToo
- Boolean
true
zaregistrovat obslužnou rutinu tak, aby byla vyvolána, i když je směrovaná událost označena v datech události; false
zaregistrovat obslužnou rutinu s výchozí podmínkou, že nebude vyvolána, pokud je směrovaná událost již označena jako zpracována.
Výchozí hodnota je false
.
Nepožádejte se rutinně o opětovné zpracování směrované události.
Příklady
Následující příklad implementuje obslužnou rutinu vyvolanou na 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 podél trasy označil data sdílené události jako zpracován před dosažením prvku 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 obslužnou, pokud je k tomu nějaký záměr návrhu. V určitých scénářích nemusí být záměry návrhu tím, co vaše konkrétní zpracování vstupní události vyžaduje. Pro tyto scénáře je vhodné registrovat obslužné rutiny s handledEventsToo
jako true
. Ale neměli byste to dělat rutinně. Vyvolání obslužných rutin v reakci na všechny události i v případě, že zpracování zkomplikuje vlastní logiku zpracování událostí aplikace. Pokud je logika obslužné rutiny podstatná, může se zobrazit snížení výkonu. Měli byste si rezervovat použití připojení obslužných rutin pro již zpracovávané události v situacích, kdy jste již během procesu vývoje zjistili, že určité ovládací prvky zpracovávají události, které stále chcete zpracovat pomocí aplikační logiky.
Další technikou, jak se vyhnout chování zpracování tříd u určitých kombinací řízení událostí, je použít alternativu náhledu dané události. Pokud je například MouseLeftButtonDown označeno zpracováním tříd, můžete místo toho přidat obslužné rutiny pro 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 vyvolána vícekrát při zpracování události. Proto zvažte, jak toto chování může mít vedlejší účinky, které by měly být zohledněny v implementaci obslužné rutiny.
Tuto metodu obvykle používáte k poskytnutí implementace přístupového objektu "add" pro model přístupu k událostem Microsoft .NET vlastní směrované události.