Autor Beitrag
angelag
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 31.05.12 10:53 
Für meine WPF-Anwendung muss ich Keyboard-Shortcuts einsetzen, um eine eigene UserControl besser bedienen zu können. Beispielsweise möchte ich beim Drücken der Pfeiltasten, dass eine Zahl in einer Textbox erhöht wird. Diese Textbox befindet sich innerhalb einer UserControl. Ich möchte, dass dieser Shortcut immer angewendet werden kann, egal in welchem Bereich meiner Anwendung sich der User befindet. Deshalb habe ich die Tastatur-Shortcuts im Hauptfenster angelegt:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
// Hauptfenster.xaml
<Window ...>
    <Window.CommandBindings>
        <CommandBinding Command="{x:Static local:MainWindow.upCmd}" Executed="UpCmd" />
    </Window.CommandBindings>
</Window>

// Hauptfenster.xaml.cs
public static RoutedCommand upCmd = new RoutedCommand();
// innerhalb des Konstruktors
upCmd.InputGestures.Add(new KeyGesture(Key.Up));
// Methode welche die Zahl erhöht
private void UpCmd(object sender, ExecutedRoutedEventArgs e) 
{
    ...
}



Mein Problem ist, dass sobald das Hauptfenster den Focus verliert, beispielsweise, wenn in einer andere Textbox geklickt wird um dort einen Wert manuell einzugeben, die Shortcuts nichtmehr funktionieren. Ich muss aber gleichzeitig alle Textboxen innerhalb dieser UserControl manuell durch eintippen setzen können, und gleichzeitig alle Shortcuts am laufen halten.

Was mache ich falsch?