2017-12-29 42 views
0

Standardmäßig muss ich auf eine andere Komponente (eine Schaltfläche oder eine TextBox) fokussieren, um von der aktuellen Komponente zu entfernen. Ich möchte nur außerhalb klicken. Also zum Beispiel, wenn ich auf eine TextBox klicke und etwas schreibe, als außerhalb der TextBox zu klicken, sollte ich nicht in der Lage sein zu tippen, weil die Komponente nicht fokussiert ist.Klicken Sie auf die externe Komponente, um den Fokus zu deaktivieren

(Ich hoffe, meine Erklärung klar ist, wenn nicht, sagen Sie es bitte in den Kommentaren)

+0

Also, wo ist das Problem? – Andy

Antwort

0

Sie diese Funktionalität, indem es an PreviewMouseDown Falle eines Window erreichen können. Auch um verlieren Fokus Sie benötigen ein anderes fokussierbares Steuerelement (z. B. ein Textfeld mit dem Namen _dummyControl) Fokus zu verschieben.

public MainWindow() 
{ 
    this.PreviewMouseDown += PreviewMouseDownEventHandler; 
} 
private void PreviewMouseDownEventHandler(object sender, MouseButtonEventArgs e) 
{ 
    //check conditions here... 
    _dummyControl.Focus(); 
} 

weitere Informationen:

PreviewMouseDown Ereignis auftritt, kurz bevor ein MouseDown oder klicken Ereignis eintritt. Durch das Anhängen an dieses Ereignis kann der Code erkennen, wenn der Benutzer auf das Fenster klickt. Zu diesem Zeitpunkt sollten Sie den Fokus auf ein verborgenes Steuerelement verschieben, um die Unschärfe-Funktion zu simulieren.

+0

Können Sie diese Lösung genauer erklären? Ich weiß nicht viel über Event-Handler und so ... Ich habe tatsächlich auf eine eingebaute Lösung gehofft. –

+0

Ich weiß nicht, was du meinst. Ich habe dir den Code dafür gegeben. Wie auch immer, ich habe mehr Informationen hinzugefügt – Bijan

Verwandte Themen