Browse Source

scrollbar PageUp/PageDown handling

pull/2062/head
Stano Turza 7 years ago
parent
commit
c05edaebdc
  1. 14
      src/Avalonia.Controls/Primitives/ScrollBar.cs
  2. 15
      src/Avalonia.Controls/ScrollViewer.cs

14
src/Avalonia.Controls/Primitives/ScrollBar.cs

@ -128,6 +128,20 @@ namespace Avalonia.Controls.Primitives
}
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Key == Key.PageUp)
{
LargeDecrement();
e.Handled = true;
}
else if (e.Key == Key.PageDown)
{
LargeIncrement();
e.Handled = true;
}
}
protected override void OnTemplateApplied(TemplateAppliedEventArgs e)
{
base.OnTemplateApplied(e);

15
src/Avalonia.Controls/ScrollViewer.cs

@ -4,6 +4,7 @@
using System;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Input;
namespace Avalonia.Controls
{
@ -441,5 +442,19 @@ namespace Avalonia.Controls
RaisePropertyChanged(VerticalScrollBarValueProperty, 0, VerticalScrollBarValue);
RaisePropertyChanged(VerticalScrollBarViewportSizeProperty, 0, VerticalScrollBarViewportSize);
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Key == Key.PageUp)
{
VerticalScrollBarValue = Math.Max(_offset.Y - _viewport.Height, 0);
e.Handled = true;
}
else if (e.Key == Key.PageDown)
{
VerticalScrollBarValue = Math.Min(_offset.Y + _viewport.Height, VerticalScrollBarMaximum);
e.Handled = true;
}
}
}
}

Loading…
Cancel
Save