Postupy: Přidání obslužné rutiny události pomocí kódu
Tento příklad ukazuje, jak přidat obslužnou rutinu události do elementu pomocí kódu.
Pokud chcete přidat obslužnou rutinu události do elementu XAML a stránka značek obsahující prvek již byla načtena, je nutné přidat obslužnou rutinu pomocí kódu. Případně pokud vytváříte strom elementů pro aplikaci zcela pomocí kódu a neklaračně žádné prvky pomocí XAML, můžete volat konkrétní metody pro přidání obslužných rutin událostí do vytvořeného stromu elementů.
Příklad
Následující příklad přidá novou Button na existující stránku, která je původně definována v XAML. Soubor s kódem implementuje metodu obslužné rutiny události a pak tuto metodu přidá jako novou obslužnou rutinu události na .Button
Příklad jazyka +=
C# používá operátor k přiřazení obslužné rutiny k události. Jedná se o stejný operátor, který se používá k přiřazení obslužné rutiny v modelu zpracování událostí CLR (Common Language Runtime). Microsoft Visual Basic nepodporuje tento operátor jako prostředek přidání obslužných rutin událostí. Místo toho vyžaduje jednu ze dvou technik:
Použijte metodu AddHandler společně s operátorem
AddressOf
pro odkaz na implementaci obslužné rutiny události.Handles
Klíčové slovo použijte jako součást definice obslužné rutiny události. Tato technika zde není uvedena; Viz Zpracování událostí jazyka Visual Basic a WPF.
<TextBlock Name="text1">Start by clicking the button below</TextBlock>
<Button Name="b1" Click="MakeButton">Make new button and add handler to it</Button>
public partial class RoutedEventAddRemoveHandler {
void MakeButton(object sender, RoutedEventArgs e)
{
Button b2 = new Button();
b2.Content = "New Button";
// Associate event handler to the button. You can remove the event
// handler using "-=" syntax rather than "+=".
b2.Click += new RoutedEventHandler(Onb2Click);
root.Children.Insert(root.Children.Count, b2);
DockPanel.SetDock(b2, Dock.Top);
text1.Text = "Now click the second button...";
b1.IsEnabled = false;
}
void Onb2Click(object sender, RoutedEventArgs e)
{
text1.Text = "New Button (b2) Was Clicked!!";
}
Public Partial Class RoutedEventAddRemoveHandler
Private Sub MakeButton(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim b2 As Button = New Button()
b2.Content = "New Button"
AddHandler b2.Click, AddressOf Onb2Click
root.Children.Insert(root.Children.Count, b2)
DockPanel.SetDock(b2, Dock.Top)
text1.Text = "Now click the second button..."
b1.IsEnabled = False
End Sub
Private Sub Onb2Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
text1.Text = "New Button (b2) Was Clicked!!"
End Sub
Poznámka:
Přidání obslužné rutiny události na původně analyzované stránce XAML je mnohem jednodušší. V elementu objektu, do kterého chcete přidat obslužnou rutinu události, přidejte atribut, který odpovídá názvu události, kterou chcete zpracovat. Pak zadejte hodnotu tohoto atributu jako název metody obslužné rutiny události, kterou jste definovali v souboru kódu stránky XAML. Další informace najdete v tématu XAML v přehledu WPF nebo směrovaných událostí.
Viz také
.NET Desktop feedback
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