public async void SwitchCloth(ClothType type, int direction) { if(ClothView(type).Content != null) { Arrow (type, -1).Disable (); Arrow (type, 1).Disable (); ContentView disappearingCloth = new ContentView { VerticalOptions = ClothView(type).VerticalOptions }; AbsoluteLayout.SetLayoutBounds (disappearingCloth, AbsoluteLayout.GetLayoutBounds (ClothView(type))); AbsoluteLayout.SetLayoutFlags (disappearingCloth, AbsoluteLayout.GetLayoutFlags (ClothView(type))); disappearingCloth.Content = new CWCloth { SvgPath = ((CWCloth)(ClothView(type).Content)).SvgPath, Color = ((CWCloth)(ClothView(type).Content)).Color, HeightRequest = ((CWCloth)(ClothView(type).Content)).HeightRequest }; ClothSlider(type).Children.Add (disappearingCloth); await Task.Delay (10); // mad sheet int dx = App.ScreenWidth / 2 + (int)ClothView(type).Content.Width / 2; ClothView(type).TranslationX = - direction * dx; SwitchClothPath (type); ClothView(type).TranslateTo (0, 0, 700, Easing.CubicInOut); await disappearingCloth.TranslateTo (direction * dx, 0, 700, Easing.CubicInOut); ClothesCanvas.Children.Remove (disappearingCloth); Arrow (type, -1).Enable (); Arrow (type, 1).Enable (); } else { SwitchClothPath (type); } }