@@ -185,6 +185,81 @@ public RadialGauge()
185
185
186
186
SmallChange = 1 ;
187
187
LargeChange = 10 ;
188
+
189
+ // Small step
190
+ AddKeyboardAccelerator ( VirtualKeyModifiers . None , VirtualKey . Left , static ( _ , kaea ) =>
191
+ {
192
+ if ( kaea . Element is RadialGauge gauge )
193
+ {
194
+ gauge . Value = Math . Max ( gauge . Minimum , gauge . Value - Math . Max ( gauge . StepSize , gauge . SmallChange ) ) ;
195
+ kaea . Handled = true ;
196
+ }
197
+ } ) ;
198
+
199
+ AddKeyboardAccelerator ( VirtualKeyModifiers . None , VirtualKey . Up , static ( _ , kaea ) =>
200
+ {
201
+ if ( kaea . Element is RadialGauge gauge )
202
+ {
203
+ gauge . Value = Math . Min ( gauge . Maximum , gauge . Value + Math . Max ( gauge . StepSize , gauge . SmallChange ) ) ;
204
+ kaea . Handled = true ;
205
+ }
206
+ } ) ;
207
+
208
+ AddKeyboardAccelerator ( VirtualKeyModifiers . None , VirtualKey . Right , static ( _ , kaea ) =>
209
+ {
210
+ if ( kaea . Element is RadialGauge gauge )
211
+ {
212
+ gauge . Value = Math . Min ( gauge . Maximum , gauge . Value + Math . Max ( gauge . StepSize , gauge . SmallChange ) ) ;
213
+ kaea . Handled = true ;
214
+ }
215
+ } ) ;
216
+
217
+ AddKeyboardAccelerator ( VirtualKeyModifiers . None , VirtualKey . Down , static ( _ , kaea ) =>
218
+ {
219
+ if ( kaea . Element is RadialGauge gauge )
220
+ {
221
+ gauge . Value = Math . Max ( gauge . Minimum , gauge . Value - Math . Max ( gauge . StepSize , gauge . SmallChange ) ) ;
222
+ kaea . Handled = true ;
223
+ }
224
+ } ) ;
225
+
226
+ // Large step
227
+ AddKeyboardAccelerator ( VirtualKeyModifiers . Control , VirtualKey . Left , static ( _ , kaea ) =>
228
+ {
229
+ if ( kaea . Element is RadialGauge gauge )
230
+ {
231
+ gauge . Value = Math . Max ( gauge . Minimum , gauge . Value - Math . Max ( gauge . StepSize , gauge . LargeChange ) ) ;
232
+ kaea . Handled = true ;
233
+ }
234
+ } ) ;
235
+
236
+ AddKeyboardAccelerator ( VirtualKeyModifiers . Control , VirtualKey . Up , static ( _ , kaea ) =>
237
+ {
238
+ if ( kaea . Element is RadialGauge gauge )
239
+ {
240
+ gauge . Value = Math . Min ( gauge . Maximum , gauge . Value + Math . Max ( gauge . StepSize , gauge . LargeChange ) ) ;
241
+ kaea . Handled = true ;
242
+ }
243
+ } ) ;
244
+
245
+ AddKeyboardAccelerator ( VirtualKeyModifiers . Control , VirtualKey . Right , static ( _ , kaea ) =>
246
+ {
247
+ if ( kaea . Element is RadialGauge gauge )
248
+ {
249
+ gauge . Value = Math . Min ( gauge . Maximum , gauge . Value + Math . Max ( gauge . StepSize , gauge . LargeChange ) ) ;
250
+ kaea . Handled = true ;
251
+ }
252
+ } ) ;
253
+
254
+ AddKeyboardAccelerator ( VirtualKeyModifiers . Control , VirtualKey . Down , static ( _ , kaea ) =>
255
+ {
256
+ if ( kaea . Element is RadialGauge gauge )
257
+ {
258
+ gauge . Value = Math . Max ( gauge . Minimum , gauge . Value - Math . Max ( gauge . StepSize , gauge . LargeChange ) ) ;
259
+ kaea . Handled = true ;
260
+ }
261
+ } ) ;
262
+
188
263
Unloaded += RadialGauge_Unloaded ;
189
264
}
190
265
@@ -195,8 +270,6 @@ private void ThemeListener_ThemeChanged(ThemeListener sender)
195
270
196
271
private void RadialGauge_Unloaded ( object sender , RoutedEventArgs e )
197
272
{
198
- // Unregister event handlers.
199
- KeyboardAccelerators . Clear ( ) ;
200
273
ThemeListener . ThemeChanged -= ThemeListener_ThemeChanged ;
201
274
PointerReleased -= RadialGauge_PointerReleased ;
202
275
Unloaded -= RadialGauge_Unloaded ;
@@ -415,56 +488,6 @@ protected override void OnApplyTemplate()
415
488
_tickBrush = ReadLocalValue ( TickBrushProperty ) as SolidColorBrush ;
416
489
_foreground = ReadLocalValue ( ForegroundProperty ) as SolidColorBrush ;
417
490
418
- // Small step
419
- AddKeyboardAccelerator ( VirtualKeyModifiers . None , VirtualKey . Left , ( _ , kaea ) =>
420
- {
421
- Value = Math . Max ( Minimum , Value - Math . Max ( StepSize , SmallChange ) ) ;
422
- kaea . Handled = true ;
423
- } ) ;
424
-
425
- AddKeyboardAccelerator ( VirtualKeyModifiers . None , VirtualKey . Up , ( _ , kaea ) =>
426
- {
427
- Value = Math . Min ( Maximum , Value + Math . Max ( StepSize , SmallChange ) ) ;
428
- kaea . Handled = true ;
429
- } ) ;
430
-
431
- AddKeyboardAccelerator ( VirtualKeyModifiers . None , VirtualKey . Right , ( _ , kaea ) =>
432
- {
433
- Value = Math . Min ( Maximum , Value + Math . Max ( StepSize , SmallChange ) ) ;
434
- kaea . Handled = true ;
435
- } ) ;
436
-
437
- AddKeyboardAccelerator ( VirtualKeyModifiers . None , VirtualKey . Down , ( _ , kaea ) =>
438
- {
439
- Value = Math . Max ( Minimum , Value - Math . Max ( StepSize , SmallChange ) ) ;
440
- kaea . Handled = true ;
441
- } ) ;
442
-
443
- // Large step
444
- AddKeyboardAccelerator ( VirtualKeyModifiers . Control , VirtualKey . Left , ( _ , kaea ) =>
445
- {
446
- Value = Math . Max ( Minimum , Value - Math . Max ( StepSize , LargeChange ) ) ;
447
- kaea . Handled = true ;
448
- } ) ;
449
-
450
- AddKeyboardAccelerator ( VirtualKeyModifiers . Control , VirtualKey . Up , ( _ , kaea ) =>
451
- {
452
- Value = Math . Min ( Maximum , Value + Math . Max ( StepSize , LargeChange ) ) ;
453
- kaea . Handled = true ;
454
- } ) ;
455
-
456
- AddKeyboardAccelerator ( VirtualKeyModifiers . Control , VirtualKey . Right , ( _ , kaea ) =>
457
- {
458
- Value = Math . Min ( Maximum , Value + Math . Max ( StepSize , LargeChange ) ) ;
459
- kaea . Handled = true ;
460
- } ) ;
461
-
462
- AddKeyboardAccelerator ( VirtualKeyModifiers . Control , VirtualKey . Down , ( _ , kaea ) =>
463
- {
464
- Value = Math . Max ( Minimum , Value - Math . Max ( StepSize , LargeChange ) ) ;
465
- kaea . Handled = true ;
466
- } ) ;
467
-
468
491
PointerReleased += RadialGauge_PointerReleased ;
469
492
ThemeListener . ThemeChanged += ThemeListener_ThemeChanged ;
470
493
0 commit comments