Laden...

Focusable="False" funktioniert nicht unter Windows 10

Erstellt von PoWl vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.483 Views
P
PoWl Themenstarter:in
219 Beiträge seit 2008
vor 7 Jahren
Focusable="False" funktioniert nicht unter Windows 10

Hi,

für eine Anwendung, welche auf einem Touchscreen-PC laufen wird, programmiere ich gerade eine Oberfläche mit WPF. Ich möchte hier einen ToggleButton nutzen aber es ist für den User sehr irritierend, wenn der ohnehin schon sehr schwach ausgeprägte Farbumschlag des ToggleButtons bei dessen Betätigung auch noch durch den Focus, den er erhält, überlagert wird. Der Zustand lässt sich dabei kaum noch erkennen.

Ich würde generell gerne verhindern, dass Elemente wie Buttons und co. den Focus erhalten. Also habe ich dem ToggleButton die Eigenschaft Focusable="False" gegeben. Auf meinem Entwicklungsrechner mit Windows 7 funktioniert das auch wunderbar. Der Togglebutton erhält auf Klick keinen Focus und nimmt auch anderen Steuerelementen den Focus nicht weg. Auf meinem Windows 10 Touchscreen-PC jedoch zeigt die Eigenschaft überhaupt keine Wirkung.

Warum verhält sich Windows 10 hier anders und wie kann ich nun verhindern, dass der ToggleButton den Focus bekommt?

lg, Paul

P
PoWl Themenstarter:in
219 Beiträge seit 2008
vor 7 Jahren

Nvm.

Unter Windows10 1607 scheint es zu funktionieren. Mein Tablet mit 1511 ignoriert Focusable="False". 1607 passt auf mein Tablet aus Platzgründen nicht drauf, es hat nur 16GB. Ich versuche jetzt mal das neuste .Net Framework zu installieren, vielleicht hilft das ja.

Edit: Nein, hilft nicht. Scheint wohl ein Problem von Win10 1511 zu sein. Auf meiner VM mit 1607 geht es. Aber seit dem Update von .Net braucht jede noch so kleine WPF-Anwendung 10 Sekunden zum starten. Jedes mal. Das ist doch verrückt. Diese Technologie macht mir den Eindruck, selbst nach 10 Jahren immer noch überhaupt nicht ausgereift zu sein. 🤔 Es ist einfach wahnsinn, über wie viele Bugs ich die letzten Tage gestolpert bin.

Edit2: Ich habe gegoogelt und den Tip mit "NGEN update" von hier befolgt. Das hat geholfen. Irre, dass man zunächst zu solchen Maßnahmen greifen muss, die man irgendwo per Zufall in irgendwelchen Foren findet.

P
19 Beiträge seit 2016
vor 7 Jahren

Hi PoWl,

Das mit dem Fokus ist immer so eine Sache.

Vielleicht kannst du über den FocusManager was machen.

Als Workaround würde ich eine AttachedProperty anlegen die den Fokus immer wieder entfernt sobald dieser gesetzt ist.

P
PoWl Themenstarter:in
219 Beiträge seit 2008
vor 7 Jahren

Also auf dem 1607er System läuft das auch nicht ganz wie gewollt. Der ToggleButton nimmt nun durch Focusable="False" den Fokus anderen Steuerelementen nicht mehr weg. Wenn man ihn mit der Maus bedient erhält er auch keinen Focus mehr. Wenn man ihn jedoch per Toucheingabe mit dem Finger bedient erhält er weiterhin den Focus, bleibt also bläulich gefärbt, nachdem man ihn angetouched hat, auch wenn er eigentlich schon deaktiviert ist. Die Färbung verschwindet erst, wenn man irgendwo anders auf die Oberfläche hintouched.

Deine beiden Tips als Workaround schaue ich mir mal an!

Wo kann man zu WPF bei Microsoft eigentlich Bugreports machen? Oder dürfen das nur ernstzunehmen, professionelle Entwickler und keine Amateure?