void BeginRefreshing(bool isPulledRefresh) { var currentIconGeometryY = _refreshIcon.Geometry.Y; var contentDistanceDiff = _maximumDistance - currentIconGeometryY; var _refreshIconBeginAnimation = new Animation(v => _refreshIcon.Move(_refreshIcon.Geometry.X, currentIconGeometryY + (int)v), 0, contentDistanceDiff, Easing.Linear); _refreshIconBeginAnimation.Commit(this, "RefreshIconBegin", length: _animationLength); _refreshState = RefreshState.Loading; _isRefreshing = true; _refreshIcon.IsRunning = true; Refreshing?.Invoke(this, EventArgs.Empty); }