Ich habe eine Software, die mehrere XAML-Fenster für verschiedene Instanzen verwendet: Zum Beispiel, um einige Informationen zu exportieren, habe ich sekundäre XAML-Fenster mit einem anderen Format als die Mutter-Software erstellt. Sie funktionieren gut.C# Tastaturkürzel beenden Arbeit nach dem Aufruf 2. XAML-Fenster
Mein Problem ist, dass, wenn ich meine Software ohne Aufruf eines dieser sekundären XAML-Fenster verwenden, die Verknüpfungen ziemlich gut funktionieren. Aber sobald ich diese neuen XAML-Fenster anrufe, funktionieren die Verknüpfungen nicht mehr. Ich muss das Programm neu starten, damit sie wieder lebendig werden.
Irgendwelche Hinweise auf dieses Verhalten? Außerdem konnte ich noch keine Verknüpfungen wie STRG + Letter zum Beispiel erstellen. Ich habe viele Codes zu sehen, wie es scheint ziemlich geradlinig, aber sie einfach nicht funktionieren ...
-Code
private void Window_KeyDown(object sender, KeyEventArgs e)
{
Key key = e.Key;
if ((key == Key.Left) && previousButton.IsEnabled)
button_PreviewMouseDown(previousButton, null);
else if ((key == Key.Right) && nextButton.IsEnabled)
button_PreviewMouseDown(nextButton, null);
//New Label
else if (key == Key.L)
//else if (key == Key.LeftAlt && e.Key.ToString() == "L")
NewLabel_Click(sender, e);
// Begin Event
else if (key == Key.B)
BeginEvent_Click(sender, e);
// End Event
else if (key == Key.E)
EndEvent_Click(sender, e);
// Delete Label
else if (key == Key.K)
DeleteLabel_Click(sender, e);
else if (key == Key.R)
// Delete Event
DeleteEvent_Click(sender, e);
// Edit Label
else if (key == Key.I)
EditLabel_Click(sender, e);
// Edit Event
else if (key == Key.F)
EditEvent_Click(sender, e);
}
EDIT 1
ich jetzt, dass so schnell wie ich herausgefunden habe Rufen Sie ein C# -Popup-Meldungsfeld auf, indem Sie einfach "Event Created OK" sagen, damit die Verknüpfungen wieder lebendig werden!
MessageBox.Show("Event Created");
Irgendeine Idee, warum dies geschehen könnte?
sorge dafür, deinen Code und das genaue Problem zu teilen – Apoorv
Sollte eine Switch-Anweisung, insbesondere für die Lesbarkeit verwenden; Ich habe abgestimmt, viel Glück. – KDOT
Idee, Event-Handler direkt mit einigen (wahrscheinlich falschen) 'sender' und' e' aufzurufen ist schlecht, eher Code aus Handler in separate Methode verschieben und dann können Sie diese Methode von verschiedenen Event-Handlern aufrufen. Es ist nicht klar, was passiert, wenn Sie das zweite Fenster anzeigen (verwandten Code hinzufügen). Und die Beschreibung des Problems * "nicht arbeiten" * ist genial. Was funktioniert nicht? Wird der Event-Handler nicht mehr aufgerufen (setzen Sie den Breakpoint in der ersten Zeile und sehen Sie sich selbst)? Könnte es sein, dass ein anderes Steuerelement den Fokus erhält (oder das Fenster nicht mehr aktiv ist, also keine Eingabe mehr)? – Sinatr