Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com
Nog geen ervaring mee, maar dit lijkt me the way to go. Ook aan de hand hiervan:
Please use Window.Current.CoreWindow.KeyDown
[ Voor 14% gewijzigd door RobIII op 29-10-2012 13:23 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Om de één of andere reden worden de keydown/keyup events niet getriggerd. Als ik op hetzelfde grid een PointerPressed event plaats, dan werkt het wel:RobIII schreef op maandag 29 oktober 2012 @ 13:22:
In Winforms heb je daar de KeyPreview property op een form voor. Ik ben (nog) niet super thuis in XAML/W8 apps maar kwam met voorgenoemd property + XAML googlen wel een heel eind
Volgens mij is dat 'tzelfde als onder WPF (ik meen dat W8 Apps niet echt WPF zijn, maar een soort afgeleide / opvolger ervan?)
1
2
3
4
| Private Sub grdStart_KeyDown(sender As Object, e As PointerRoutedEventArgs) _ Handles grdStart.PointerPressed txtbxSearchQuery.Focus(Windows.UI.Xaml.FocusState.Keyboard) End Sub |
Dit werkt dus niet:
1
2
3
4
| Private Sub grdStart_KeyDown(sender As Object, e As KeyRoutedEventArgs) _ Handles grdStart.KeyDown txtbxSearchQuery.Focus(Windows.UI.Xaml.FocusState.Keyboard) End Sub |
Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com
De volgende code zou ik moeten toevoegen in de page constructor om een globale keydown event te krijgen:HyperioN schreef op maandag 29 oktober 2012 @ 13:17:
MSDN: CoreWindow.KeyDown event
Nog geen ervaring mee, maar dit lijkt me the way to go. Ook aan de hand hiervan:
[...]
1
| Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown |
Ik ben al weer wat wijzer.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| protected override void OnNavigatedTo(NavigationEventArgs e) { Window.Current.CoreWindow.KeyUp += CoreWindow_KeyUp; } void CoreWindow_KeyUp(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args) { switch (args.VirtualKey) { case Windows.System.VirtualKey.Number1: break; case Windows.System.VirtualKey.Number2: break; … } } protected override void OnNavigatedFrom(NavigationEventArgs e) { Window.Current.CoreWindow.KeyUp -= CoreWindow_KeyUp; } |
Met de regel hieronder (in Visual Basic) krijg ik een foutmelding:
1
| Window.Current.CoreWindow.KeyUp += CoreWindow_KeyUp |
'Public Event KeyUp(sender As Windows.UI.Core.CoreWindow, args As Windows.UI.Core.KeyEventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.
[ Voor 47% gewijzigd door Swerfer op 29-10-2012 14:46 ]
Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com
Verwijderd
1
| <Page Keyboard.PreviewKeyDown="KeyBinding_PreviewKeyDown" /> |
Dit zou van overal aangeroepen moeten worden. In WPF heb ik dan in ieder geval een globale keydown. In de code zelf zet je dan gewoon de focus op je searchbox.
[ Voor 29% gewijzigd door Verwijderd op 29-10-2012 14:57 ]
'Keyboard' behoort niet tot 'Page' in een Windows store app. Dat werkt helaas niet. De oplossing ligt in het voorbeeld in mijn vorige post, echter werk ik in VB ipv C# en krijg ik bij Window.Current.CoreWindow.KeyDown += KeyDowns een foutmelding...Verwijderd schreef op maandag 29 oktober 2012 @ 14:50:
Ik heb hier geen VS2012 draaien, maar doet dit niet exact wat je wil?
XML:
1 <Page Keyboard.PreviewKeyDown="KeyBinding_PreviewKeyDown" />
Onder je namespace declaraties in de root tag dus. Dit zou van overal aangeroepen moeten worden. In WPF heb ik dan in ieder geval een globale keydown. In de code zelf zet je dan gewoon de focus op je searchbox.
Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com
Omdat je in VB.Net anders events assigned aan delegetes dan in C#; daarom heb je in VB.Net AddHandler en/of de Handles clause. Misschien dat je even moet inlezen in events?Swerfer schreef op maandag 29 oktober 2012 @ 14:59:
[...]
'Keyboard' behoort niet tot 'Page' in een Windows store app. Dat werkt helaas niet. De oplossing ligt in het voorbeeld in mijn vorige post, echter werk ik in VB ipv C# en krijg ik bij Window.Current.CoreWindow.KeyDown += KeyDowns een foutmelding...
[ Voor 16% gewijzigd door RobIII op 29-10-2012 15:35 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Ik wil dus net als in het c# voorbeeld de procedure KeyDown toevoegen aan Window.Current.CoreWindow.KeyDown, maar ik krijg dat niet voor elkaar.
Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com
Dus dan krijg je zoiets:
1
| Addhandler Window.Current.CoreWindow.Keydown, Addressof grdStart_KeyDown |
Lekker op de bank
Bedankt! Die Addhandler structuur kende ik wel, echter maakte ik dezeZaZ schreef op dinsdag 30 oktober 2012 @ 01:38:
Maar eh, equivalent van += is toch gewoon Addhandler in VB?
Dus dan krijg je zoiets:
Visual Basic:
1 Addhandler Window.Current.CoreWindow.Keydown, Addressof grdStart_KeyDown
1
| Addhandler Window.Current.CoreWindow.Keydown +=grdstart_KeyDown, Addressof grdStart_KeyDown |
Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com
Mja, sorry, maar dat had je toch echt aan de foutmelding moeten kunnen aflezen danwel afleiden dat er in die regel ergens iets niet klopte. Dit compiled niet eens.Swerfer schreef op dinsdag 30 oktober 2012 @ 18:36:
[...]
Bedankt! Die Addhandler structuur kende ik wel, echter maakte ik dezekopieren/plakken fout:
code:
1 Addhandler Window.Current.CoreWindow.Keydown +=grdstart_KeyDown, Addressof grdStart_KeyDown
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij