Hoe maak je een verzendknop in WPF?

Als u ergens in een HTML formop Enterdrukt, wordt de actiongeactiveerd, wat overeenkomt met het indrukken van de submitknop.
Hoe maak ik een venster dat een gebeurtenis activeert als ik ergens op Enterdruk?


Antwoord 1, autoriteit 100%

Stel de IsDefaulteigenschap op de knopin op true om de Enter-toets in te schakelen om de actie van die knop te activeren. Er is ook de IsCanceleigenschap die hetzelfde doet voor de Escape-toets.


Antwoord 2, autoriteit 6%

Wijs de gebeurtenis PreviewKeyDowntoe aan het venster in XAML en controleer vervolgens de KeyEventArgsin codebehind om te bepalen of de gebruiker op de Enter-toets heeft gedrukt.

XAML-code:

<Window
    [...]
    PreviewKeyDown="Window_PreviewKeyDown">

Code achter:

private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        // Whatever code you want if enter key is pressed goes here
    }
}

Antwoord 3

Ik ontdekte dat het DatePicker-besturingselement de Enter-toets inslikt, zodat er niet op de standaardknop wordt geklikt. Ik schreef deze gebeurtenishandler om dat op te lossen. Gebruik de PreviewKeyUpom ervoor te zorgen dat de DatePickerzijn datumnotatiecode uitvoert voordat hij op de standaardknop klikt.

private void DatePicker_PreviewKeyUp(object sender, KeyEventArgs e) {
    // event handler to click the default button when you hit enter on DatePicker
    if (e.Key == Key.Enter) {
        // https://www.codeproject.com/Tips/739358/WPF-Programmatically-click-the-default-button
        System.Windows.Input.AccessKeyManager.ProcessKey(null, "\x000D", false);
    }
}

Antwoord 4

<Button Name="btnDefault" IsDefault="true" Click="OnClickDefault">OK</Button>

U kunt dit doen door de eigenschap IsDefault van de knop in te stellen op True.

U kunt gedetailleerde informatie krijgen uit de documenten van Microsoft.

Button.IsDefault-eigenschap

Other episodes