|
|
|
@ -220,11 +220,24 @@ namespace Perspex.Controls.Presenters |
|
|
|
{ |
|
|
|
if (Extent.Height > Viewport.Height) |
|
|
|
{ |
|
|
|
var y = Offset.Y + (-e.Delta.Y * 50); |
|
|
|
y = Math.Max(y, 0); |
|
|
|
y = Math.Min(y, Extent.Height - Viewport.Height); |
|
|
|
Offset = new Vector(Offset.X, y); |
|
|
|
e.Handled = true; |
|
|
|
var scrollable = Child as IScrollable; |
|
|
|
|
|
|
|
if (scrollable != null) |
|
|
|
{ |
|
|
|
var y = Offset.Y + (-e.Delta.Y * scrollable.ScrollSize.Height); |
|
|
|
y = Math.Max(y, 0); |
|
|
|
y = Math.Min(y, Extent.Height - Viewport.Height); |
|
|
|
Offset = new Vector(Offset.X, y); |
|
|
|
e.Handled = true; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
var y = Offset.Y + (-e.Delta.Y * 50); |
|
|
|
y = Math.Max(y, 0); |
|
|
|
y = Math.Min(y, Extent.Height - Viewport.Height); |
|
|
|
Offset = new Vector(Offset.X, y); |
|
|
|
e.Handled = true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|