public PanContainer () { // Set PanGestureRecognizer.TouchPoints to control the // number of touch points needed to pan var panGesture = new PanGestureRecognizer (); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add (panGesture); }
public void UpdateGestureRecognizers(List<IGestureRecognizer> gestureRecognizers) { this.tapGestureRecognizer = (TapGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is TapGestureRecognizer); this.longPressGestureRecognizer = (LongPressGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is LongPressGestureRecognizer); this.panGestureRecognizer = (PanGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is PanGestureRecognizer); this.pinchGestureRecognizer = (PinchGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is PinchGestureRecognizer); this.rotationGestureRecognizer = (RotationGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is RotationGestureRecognizer); this.swipeGestureRecognizer = (SwipeGestureRecognizer)gestureRecognizers.FirstOrDefault(s => s is SwipeGestureRecognizer); }
public PinchToZoomContainer() { var pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchUpdated; GestureRecognizers.Add(pinchGesture); var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); }
public PanContainer() { PinchGestureRecognizer pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += PinchGesture_PinchUpdated; GestureRecognizers.Add(pinchGesture); var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); }
public CusomMap() { var pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchUpdated; GestureRecognizers.Add(pinchGesture); var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); }
public SwipeCardView() { var view = new RelativeLayout(); this.BackgroundColor = Color.FromHex(DefaultBackgroundColor); this.Content = view; var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += this.OnPanUpdated; this.GestureRecognizers.Add(panGesture); }
public CardsView(ICardProcessor frontViewProcessor, ICardProcessor backViewProcessor) { FrontViewProcessor = frontViewProcessor; BackViewProcessor = backViewProcessor; if (Device.RuntimePlatform != Device.Android) { var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); } }
public StrikeZoneGridView() { InitializeComponent(); this.Content = CreateContent(); _swipeGesture = new PanGestureRecognizer(); _swipeGesture.PanUpdated += OnSwipeUpdated; Content.GestureRecognizers.Add(_swipeGesture); }
public BoxAreaLayout() { var effect = new TEffect(); effect.OnTouchAction += Effect_OnTouch; Effects.Add(effect); var pan = new PanGestureRecognizer(); pan.PanUpdated += Pan_PanUpdated; GestureRecognizers.Add(pan); }
private void ApplyConfigToPicturePanel(SlidingPanelConfig config) { if (config.PictureImage != null) { _headerStackLayout = new StackLayout(); _headerStackLayout.Orientation = StackOrientation.Horizontal; _headerStackLayout.HorizontalOptions = LayoutOptions.FillAndExpand; _headerStackLayout.BackgroundColor = config.HeaderBackgroundColor; TapGestureRecognizer headerTapGesture = new TapGestureRecognizer(); headerTapGesture.Tapped += TapGesture_Tapped; _headerStackLayout.GestureRecognizers.Add(headerTapGesture); if (config.IsPanSupport == true) { PanGestureRecognizer headerPanGesture = new PanGestureRecognizer(); headerPanGesture.PanUpdated += PanGesture_PanUpdated; _headerStackLayout.GestureRecognizers.Add(headerPanGesture); } View topLeftButton = config.HeaderLeftButton; if (topLeftButton != null) { _headerStackLayout.Children.Add(topLeftButton); } View topRightButton = config.HeaderRightButton; if (topRightButton != null) { topRightButton.HorizontalOptions = LayoutOptions.EndAndExpand; _headerStackLayout.Children.Add(topRightButton); } _pictureMainStackLayout = new StackLayout(); _pictureMainStackLayout.Orientation = StackOrientation.Vertical; _pictureMainStackLayout.BackgroundColor = config.PictureBackgroundColor; _pictureMainStackLayout.Children.Add(_headerStackLayout); _pictureImage = config.PictureImage; if (config.IsPanSupport == true) { PanGestureRecognizer pictureImagePanGesture = new PanGestureRecognizer(); pictureImagePanGesture.PanUpdated += PanGesture_PanUpdated; _pictureImage.GestureRecognizers.Add(pictureImagePanGesture); } _pictureMainStackLayout.Children.Add(_pictureImage); Rectangle layoutBound = new Rectangle(1, 1, 1, 1); _pictureAbsoluteLayout.Children.Add(_pictureMainStackLayout, layoutBound, AbsoluteLayoutFlags.All); } }
public PanContainer(View view, IDevice device) { _device = device; this.WidthRequest = view.WidthRequest; this.HeightRequest = view.HeightRequest; // Set PanGestureRecognizer.TouchPoints to control the // number of touch points needed to pan var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); this.Content = view; }
public MainPage() { InitializeComponent(); // Gesture // Tap - Toque/Clique // Pinch - Pinça/Zoom // Pan - Arrastar PanGestureRecognizer pan = new PanGestureRecognizer(); pan.PanUpdated += PanGestureRecognizer_PanUpdated; MyLabel.GestureRecognizers.Add(pan); }
public PinchToZoomContainer() { if (Device.OS != TargetPlatform.Android) { var pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchUpdated; GestureRecognizers.Add(pinchGesture); var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); } }
// In this class we are Initialization the Gesture Recognizers for the particular property public PinchToZoomContainer() { PinchGestureRecognizer pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += PinchGesture_PinchUpdated; GestureRecognizers.Add(pinchGesture); //Rises the OnPanUpdated Event var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); }
public PanPage() { InitializeComponent(); AddRectangle(); AddImage(); _panGestureRecognizer = new PanGestureRecognizer(); _panGestureRecognizer.PanUpdated += PanGestureRecognizer_PanUpdated; canvas.GestureRecognizers.Add(_panGestureRecognizer); }
public SwipeCardView() { var view = new RelativeLayout(); Content = view; var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); DraggingCardPosition = DraggingCardPosition.Start; }
public void PanRaisesStartedEventTest () { var view = new View (); var pan = new PanGestureRecognizer (); GestureStatus target = GestureStatus.Canceled; pan.PanUpdated += (object sender, PanUpdatedEventArgs e) => { target = e.StatusType; }; ((IPanGestureController)pan).SendPanStarted (view, 0); Assert.AreEqual (GestureStatus.Started, target); }
public SwipeGestureGrid() { PanGestureRecognizer panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += PanGesture_PanUpdated; TapGestureRecognizer tapGesture = new TapGestureRecognizer(); tapGesture.Tapped += TapGesture_Tapped; GestureRecognizers.Add(panGesture); GestureRecognizers.Add(tapGesture); }
public void PanRaisesRunningEventTest () { var view = new View (); var pan = new PanGestureRecognizer (); GestureStatus target = GestureStatus.Canceled; pan.PanUpdated += (object sender, PanUpdatedEventArgs e) => { target = e.StatusType; }; ((IPanGestureController)pan).SendPan (view, gestureId: 0, totalX: 5, totalY: 10); Assert.AreEqual (GestureStatus.Running, target); }
public void PanRunningEventContainsTotalYTest () { var view = new View (); var pan = new PanGestureRecognizer (); double target = 0; pan.PanUpdated += (object sender, PanUpdatedEventArgs e) => { target = e.TotalY; }; ((IPanGestureController)pan).SendPan (view, gestureId: 0, totalX: 5, totalY: 10); Assert.AreEqual (10, target); }
public PinchZoomContainer() { if (Device.RuntimePlatform != Device.Android) { var pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchUpdated; GestureRecognizers.Add(pinchGesture); var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); } }
public ImageCropView() { HorizontalOptions = LayoutOptions.Center; VerticalOptions = LayoutOptions.Center; _crop = new CropTransformation(); _image = new CustomCachedImage() { LoadingDelay = 0, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, InputTransparent = true, Aspect = Aspect, Transformations = new List <ITransformation>() { _crop }, FadeAnimationEnabled = false, }; SetupImageView(_image); _root = new Grid() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, InputTransparent = true, Children = { _image } }; _intervalThrottle = new IntervalThrottle(Delay, _image.LoadImage, _image.LoadImage, _image.LoadRefinedImage); _pinchGesture = new PinchGestureRecognizer(); _pinchGesture.PinchUpdated += PinchGesture_PinchUpdated;; _panGesture = new PanGestureRecognizer(); _panGesture.PanUpdated += PanGesture_PanUpdated; GestureRecognizers.Clear(); GestureRecognizers.Add(_pinchGesture); GestureRecognizers.Add(_panGesture); HandlePreviewTransformations(null, PreviewTransformations); Content = _root; ResetCrop(); }
public void PanRaisesCanceledEventTest() { var view = new View(); var pan = new PanGestureRecognizer(); GestureStatus target = GestureStatus.Started; pan.PanUpdated += (object sender, PanUpdatedEventArgs e) => { target = e.StatusType; }; ((IPanGestureController)pan).SendPanCanceled(view, 0); Assert.AreEqual(GestureStatus.Canceled, target); }
public void PanRunningEventContainsTotalYTest() { var view = new View(); var pan = new PanGestureRecognizer(); double target = 0; pan.PanUpdated += (object sender, PanUpdatedEventArgs e) => { target = e.TotalY; }; ((IPanGestureController)pan).SendPan(view, gestureId: 0, totalX: 5, totalY: 10); Assert.AreEqual(10, target); }
public void PanRaisesRunningEventTest() { var view = new View(); var pan = new PanGestureRecognizer(); GestureStatus target = GestureStatus.Canceled; pan.PanUpdated += (object sender, PanUpdatedEventArgs e) => { target = e.StatusType; }; ((IPanGestureController)pan).SendPan(view, gestureId: 0, totalX: 5, totalY: 10); Assert.AreEqual(GestureStatus.Running, target); }
private void Start() { tapGesture = new TapGestureRecognizer(); tapGesture.ThresholdSeconds = 0.3f; tapGesture.PlatformSpecificView = gameObject; tapGesture.StateUpdated += TapGesture_StateUpdated; FingersScript.Instance.AddGesture(tapGesture); panGesture = new PanGestureRecognizer(); panGesture.ThresholdUnits = 0.5f; panGesture.PlatformSpecificView = gameObject; //panGesture.StateUpdated += PanGesture_StateUpdated; FingersScript.Instance.AddGesture(panGesture); }
public MainPage() { InitializeComponent(); // Gesture //Tap - Toque/Click //Pinch - Pinça - Galeria de Imagens //Pan - Arrastar/Desenhar PanGestureRecognizer pan = new PanGestureRecognizer(); pan.PanUpdated += PanGestureRecognizer_Pan; MyLabel.GestureRecognizers.Add(pan); }
public PanPage() { boxView = new BoxView(); boxView.Color = Color.Blue; var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; boxView.GestureRecognizers.Add(panGesture); Content = new AbsoluteLayout { Children = { boxView } }; }
public GestureMultiple() { InitializeComponent(); //var Tap = new TapGestureRecognizer(); //Tap.Tapped += OnTapGestureRecognizerTapped; /* * Paso 1: Declarar una instancia del gesture a utilizar * Paso 2: Creo un Evento * Paso 3: Asigno mi evento creado en el paso2 * Paso 4: Asignr el gesto a un control. */ ////TAP //var tap1 = new TapGestureRecognizer(); // paso 1 //tap1.Tapped += EventoTap;//paso 2 y paso 3 //image1.GestureRecognizers.Add(tap1); //paso 4 //// //var pinch1 = new PinchGestureRecognizer(); //pinch1.PinchUpdated += EventoPinch; //image1.GestureRecognizers.Add(tap1); var tapGestureRecognizer = new TapGestureRecognizer(); tapGestureRecognizer.Tapped += OnTapGestureRecognizerTapped; //PINCH var pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchUpdated; //PAN var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; //SWIPE var swipeGesture = new SwipeGestureRecognizer(); swipeGesture.Swiped += OnSwiped; image1.GestureRecognizers.Add(tapGestureRecognizer); image1.GestureRecognizers.Add(pinchGesture); image1.GestureRecognizers.Add(panGesture); image1.GestureRecognizers.Add(swipeGesture); }
public PanContainer() { // Set PanGestureRecognizer.TouchPoints to control the // number of touch points needed to pan var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; GestureRecognizers.Add(panGesture); var pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchUpdated; GestureRecognizers.Add(pinchGesture); }
public MainPage() { InitializeComponent(); /* Tipos de gestos/Gesture */ // Tap - Clique/Toque // Pinch - efeito de pinça, aumentar uma imagem etc // Pan - Mover objetos PanGestureRecognizer pan = new PanGestureRecognizer(); pan.PanUpdated += PanGestureRecognizer_Pan; myLabel.GestureRecognizers.Add(pan); }
// Create a new Memo and stick it onto "ScrollBoard" void StickMemo(object sender, EventArgs args) { Memo NewMemo = new Memo(); // Set the initial position and offsets #if MemoBoardPan NewMemo.Body.TranslationX = memoBoard.Display.X; NewMemo.Body.TranslationY = memoBoard.Display.Y; NewMemo.Offset = new Point() { X = memoBoard.Display.X, Y = memoBoard.Display.Y }; #else NewMemo.Body.TranslationX = ScrollBoard.ScrollX; NewMemo.Body.TranslationY = ScrollBoard.ScrollY; NewMemo.Offset = new Point() { X = ScrollBoard.ScrollX, Y = ScrollBoard.ScrollY }; #endif // Add Tap, Pan, Pinch Gesture Event var tapGesture = new TapGestureRecognizer(); tapGesture.Tapped += OnTapMemo; NewMemo.Body.GestureRecognizers.Add(tapGesture); var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanMemo; NewMemo.Body.GestureRecognizers.Add(panGesture); var pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchMemo; NewMemo.Body.GestureRecognizers.Add(pinchGesture); // Add Editor Event Editor editor = (Editor)NewMemo.Body.Content; editor.TextChanged += EditorTextChanged; editor.Focused += EditorFocused; editor.Unfocused += EditorUnfocused; // Add this new Memo to the Memos collection // and "MemoBoard" in "ScrollBoard" Memos.Add(NewMemo); MemoBoard.Children.Add(NewMemo.Body); StatusLabel.Text = "Memo Sticked"; }
public MediaPage(DataStatus status, int inx = 0) { viewing = status; Style = (Style)Application.Current.Resources["backgroundStyle"]; if (status.ExtendMedias[0].Type == "photo") { foreach (var media in status.ExtendMedias) { Children.Add(new ContentPage() { Content = MakeMediaView(media) }); } CurrentPage = Children[inx]; } else { videoView = new VideoPlayer(); if (status.ExtendMedias[0].Type == "animated_gif") { videoView.IsVideoOnly = true; } var gesture = new PanGestureRecognizer(); gesture.PanUpdated += (sender, e) => { switch (e.StatusType) { case GestureStatus.Running: videoView.TranslationX = e.TotalX; videoView.TranslationY = e.TotalY; break; case GestureStatus.Completed: if (Math.Abs(videoView.TranslationY) > (Height / 8)) { App.Navigation.RemovePage(this); } videoView.TranslateTo(0, 0); break; } }; videoView.GestureRecognizers.Add(gesture); Children.Add(new ContentPage() { Content = videoView }); videoView.Source = VideoSource.FromUri(PickVideoVariant(status.ExtendMedias[0].Video.Variants).URL); } }
public ControlPage(App mainPage, AppSettings appSettings) { this.mainPage = mainPage; this.appSettings = appSettings; Connection = new ServerConnector.Connection(appSettings.serverURI); Connection.Connected += () => MainThread.BeginInvokeOnMainThread(() => statusCircle.BackgroundColor = Color.Green); Connection.ConnectionLost += () => MainThread.BeginInvokeOnMainThread(() => statusCircle.BackgroundColor = Color.Red); InitializeComponent(); PanGestureRecognizer touchBarRecognizer = new PanGestureRecognizer(); touchBarRecognizer.PanUpdated += Hover; TouchBar.GestureRecognizers.Add(touchBarRecognizer); Connect(); }
public ZoomContainer() { var pinchGesture = new PinchGestureRecognizer(); var panGesture = new PanGestureRecognizer(); var tapGesture = new TapGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchUpdated; panGesture.PanUpdated += OnPanUpdated; tapGesture.Tapped += Tapped; GestureRecognizers.Add(pinchGesture); GestureRecognizers.Add(panGesture); GestureRecognizers.Add(tapGesture); }
protected override async void OnAppearing() { base.OnAppearing(); if (_isInitialized) { return; } _isInitialized = true; // Add gestures recognizer (Swipe) var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanUpdated; SignUpView.GestureRecognizers.Add(panGesture); // Programatic Card changes var vm = BindingContext as SignUpViewModel; if (vm == null) { return; } vm.OnCardChanged += async(sender, args) => { await SwipeCard(AnimationDuration); }; if (Device.RuntimePlatform == Device.Android) { await Task.Delay(750); } else { await Task.Delay(500); } for (int i = 0; i < Math.Min(NumCards, _cards.Count); i++) { if (_itemIndex >= _cards.Count) { break; } var card = _cards[i]; card.IsVisible = true; } }
protected override void Init () { var taps = new Label { Text = "Taps: 0" }; var pans = new Label (); var pinches = new Label (); var pangr = new PanGestureRecognizer (); var tapgr = new TapGestureRecognizer (); var pinchgr = new PinchGestureRecognizer (); var frame = new Frame { HasShadow = false, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill, BackgroundColor = Color.White, Padding = new Thickness (5), HeightRequest = 300, WidthRequest = 300, AutomationId = "frame" }; var tapCount = 0; tapgr.Command = new Command (() => { tapCount += 1; taps.Text = $"Taps: {tapCount}"; }); pangr.PanUpdated += (sender, args) => pans.Text = $"Panning: {args.StatusType}"; pinchgr.PinchUpdated += (sender, args) => pinches.Text = $"Pinching: {args.Status}"; frame.GestureRecognizers.Add (tapgr); frame.GestureRecognizers.Add (pangr); frame.GestureRecognizers.Add(pinchgr); Content = new StackLayout { BackgroundColor = Color.Olive, Children = { taps, pans, pinches, frame } }; }
public MemorizePage() { InitializeComponent(); var panGes = new PanGestureRecognizer(); panGes.PanUpdated += OnGrapPage; quizLayout.GestureRecognizers.Add(panGes); var tapGes = new TapGestureRecognizer(); tapGes.Tapped += OnClickAnswer; chdess = quizLayout.Children.OfType<Label>().ToArray(); var btns = quizLayout.Children.OfType<FrameEx>(); foreach (var ele in btns) ele.GestureRecognizers.Add(tapGes); quest = btns.ElementAt(0); choices = btns.Skip(1).ToArray(); ChangeMode(true); }
public MapTest () { InitializeComponent (); marketX = 540 / 100 * 10; marketY = 303 / 100 * 30; coffeeX = 540 / 100 * 30; coffeeY = 303 / 100 * 10; currentScale = Donus.Scale; //marketX = 100; //marketY = 0; startMarket (); updateMarket (); searchList.IsVisible = false; searchList.HeightRequest=0; searchBar.TextChanged += (sender, e) => { if(searchBar.Text == "" || searchBar.Text == null) { searchList.HeightRequest=0; searchList.IsVisible = false; } else { updateAutocompleteList(); searchList.HeightRequest=300; searchList.IsVisible = true; } }; if (searchBar.Text == "" || searchBar.Text == null) { searchList.HeightRequest=0; searchList.IsVisible = false; } searchList.ItemSelected += OnItemSelected; var tapGestureRecognizer = new TapGestureRecognizer (); tapGestureRecognizer.Tapped += async (object sender, EventArgs e) => { var panStartPositionX = ((relativeLayoutTest.TranslationX*(-1) + (App.coreView.Width / 2)) / currentScale); var panStartPositionY = ((relativeLayoutTest.TranslationY*(-1) + (App.coreView.Height / 2)) / currentScale); var panDistanceX = (coffeeX - panStartPositionX); var panDistanceY = (coffeeY - panStartPositionY); int steps = 200; var scaleStep = 4 - (currentScale); for (int i = 0; i < steps; i++) { if (i == 0) { CenterOnCamp (false, 1.0, panStartPositionX + ((panDistanceX / steps) * (i + 1)), panStartPositionY + ((panDistanceY / steps) * (i + 1))); } else { CenterOnCamp (true, 1 + (scaleStep / steps), panStartPositionX + ((panDistanceX / steps) * (i + 1)), panStartPositionY + ((panDistanceY / steps) * (i + 1))); } await Task.Delay(4); } }; Market.GestureRecognizers.Add (tapGestureRecognizer); Coffee.GestureRecognizers.Add (tapGestureRecognizer); var pinchGestureRecognizer = new PinchGestureRecognizer(); pinchGestureRecognizer.PinchUpdated += OnPinchUpdated; this.GestureRecognizers.Add(pinchGestureRecognizer); var panGestureRecognizer = new PanGestureRecognizer(); panGestureRecognizer.PanUpdated += OnPanUpdated; this.GestureRecognizers.Add(panGestureRecognizer); }
public RangeSliderView() { // Active Bar _activeBar = new BoxView(); _activeBar.SetBinding(BoxView.ColorProperty, new Binding(path: "ActiveBarColor", source: this)); AbsoluteLayout.SetLayoutFlags(_activeBar, AbsoluteLayoutFlags.None); this.Children.Add(_activeBar); // Inactive Left Bar _inActiveLeftBar = new BoxView(); _inActiveLeftBar.SetBinding(BoxView.ColorProperty, new Binding(path: "InactiveBarColor", source: this)); AbsoluteLayout.SetLayoutFlags(_inActiveLeftBar, AbsoluteLayoutFlags.None); this.Children.Add(_inActiveLeftBar); // Inactive Right Bar _inActiveRightBar = new BoxView(); _inActiveRightBar.SetBinding(BoxView.ColorProperty, new Binding(path: "InactiveBarColor", source: this)); AbsoluteLayout.SetLayoutFlags(_inActiveRightBar, AbsoluteLayoutFlags.None); this.Children.Add(_inActiveRightBar); // Left Button _leftButton = new Image(); AbsoluteLayout.SetLayoutFlags(_leftButton, AbsoluteLayoutFlags.None); var leftButtonPanGesture = new PanGestureRecognizer(); leftButtonPanGesture.PanUpdated += LeftButtonPanGesture; _leftButton.GestureRecognizers.Add(leftButtonPanGesture); _leftButton.SetBinding(Image.SourceProperty, new Binding(path: "HandleImageSource", source: this)); this.Children.Add(_leftButton); // Right Button _rightButton = new Image(); AbsoluteLayout.SetLayoutFlags(_rightButton, AbsoluteLayoutFlags.None); var rightButtonPanGesture = new PanGestureRecognizer(); rightButtonPanGesture.PanUpdated += RightButtonPanGesture; _rightButton.GestureRecognizers.Add(rightButtonPanGesture); _rightButton.SetBinding(Image.SourceProperty, new Binding(path: "HandleImageSource", source: this)); this.Children.Add(_rightButton); // Left Bubble _leftBubble = new RangeSliderBubble() { IsVisible = this.ShowBubbles, Text = this.LeftValue.ToString("#0") }; AbsoluteLayout.SetLayoutFlags(_leftBubble, AbsoluteLayoutFlags.None); _leftBubble.SetBinding(RangeSliderBubble.SourceProperty, new Binding(path: "BubbleImageSource", source: this)); _leftBubble.SetBinding(RangeSliderBubble.FontFamilyProperty, new Binding(path: "FontFamily", source: this)); _leftBubble.SetBinding(RangeSliderBubble.FontSizeProperty, new Binding(path: "FontSize", source: this)); _leftBubble.SetBinding(RangeSliderBubble.TextColorProperty, new Binding(path: "TextColor", source: this)); this.Children.Add(_leftBubble); // Right Bubble _rightBubble = new RangeSliderBubble() { IsVisible = this.ShowBubbles, Text = this.RightValue.ToString("#0") }; AbsoluteLayout.SetLayoutFlags(_rightBubble, AbsoluteLayoutFlags.None); _rightBubble.SetBinding(RangeSliderBubble.SourceProperty, new Binding(path: "BubbleImageSource", source: this)); _rightBubble.SetBinding(RangeSliderBubble.FontFamilyProperty, new Binding(path: "FontFamily", source: this)); _rightBubble.SetBinding(RangeSliderBubble.FontSizeProperty, new Binding(path: "FontSize", source: this)); _rightBubble.SetBinding(RangeSliderBubble.TextColorProperty, new Binding(path: "TextColor", source: this)); this.Children.Add(_rightBubble); }
public RangeSliderView() { // Path _sliderPath = new BoxView(); _sliderPath.SetBinding(BoxView.ColorProperty, new Binding(path: "BarColor", source: this)); AbsoluteLayout.SetLayoutFlags(_sliderPath, AbsoluteLayoutFlags.None); this.Children.Add(_sliderPath); // Left Button _leftButton = new Image(); AbsoluteLayout.SetLayoutFlags(_leftButton, AbsoluteLayoutFlags.None); var leftButtonPanGesture = new PanGestureRecognizer(); leftButtonPanGesture.PanUpdated += LeftButtonPanGesture; _leftButton.GestureRecognizers.Add(leftButtonPanGesture); _leftButton.SetBinding(Image.SourceProperty, new Binding(path: "HandleImageSource", source: this)); this.Children.Add(_leftButton); // Right Button _rightButton = new Image(); AbsoluteLayout.SetLayoutFlags(_rightButton, AbsoluteLayoutFlags.None); var rightButtonPanGesture = new PanGestureRecognizer(); rightButtonPanGesture.PanUpdated += RightButtonPanGesture; _rightButton.GestureRecognizers.Add(rightButtonPanGesture); _rightButton.SetBinding(Image.SourceProperty, new Binding(path: "HandleImageSource", source: this)); this.Children.Add(_rightButton); // Left Bubble _leftBubble = new RangeSliderBubble() { IsVisible = this.ShowBubbles, Text = this.LeftValue.ToString("#0") }; AbsoluteLayout.SetLayoutFlags(_leftBubble, AbsoluteLayoutFlags.None); _leftBubble.SetBinding(RangeSliderBubble.SourceProperty, new Binding(path: "BubbleImageSource", source: this)); this.Children.Add(_leftBubble); // Right Bubble _rightBubble = new RangeSliderBubble() { IsVisible = this.ShowBubbles, Text = this.RightValue.ToString("#0") }; AbsoluteLayout.SetLayoutFlags(_rightBubble, AbsoluteLayoutFlags.None); _rightBubble.SetBinding(RangeSliderBubble.SourceProperty, new Binding(path: "BubbleImageSource", source: this)); this.Children.Add(_rightBubble); }
public iOS_PanGestureEventArgs(PanGestureRecognizer gestureRecognizer, UIPanGestureRecognizer platformGestureRecognizer) { this.gestureRecognizer = gestureRecognizer; this.platformGestureRecognizer = platformGestureRecognizer; }
public PanContainer () { var pan = new PanGestureRecognizer { TouchPoints = 1 }; pan.PanUpdated += (object s, PanUpdatedEventArgs e) => { switch (e.StatusType) { case GestureStatus.Started: break; case GestureStatus.Running: Content.TranslationX = e.TotalX; Content.TranslationY = e.TotalY; break; default: Content.TranslationX = Content.TranslationY = 0; break; } }; var pinch = new PinchGestureRecognizer (); double xOffset = 0; double yOffset = 0; double startScale = 1; pinch.PinchUpdated += (sender, e) => { if (e.Status == GestureStatus.Started) { startScale = Content.Scale; Content.AnchorX = Content.AnchorY = 0; } if (e.Status == GestureStatus.Running) { _currentScale += (e.Scale - 1) * startScale; _currentScale = Math.Max (1, _currentScale); var renderedX = Content.X + xOffset; var deltaX = renderedX / Width; var deltaWidth = Width / (Content.Width * startScale); var originX = (e.ScaleOrigin.X - deltaX) * deltaWidth; var renderedY = Content.Y + yOffset; var deltaY = renderedY / Height; var deltaHeight = Height / (Content.Height * startScale); var originY = (e.ScaleOrigin.Y - deltaY) * deltaHeight; double targetX = xOffset - (originX * Content.Width) * (_currentScale - startScale); double targetY = yOffset - (originY * Content.Height) * (_currentScale - startScale); Content.TranslationX = targetX.Clamp (-Content.Width * (_currentScale - 1), 0); Content.TranslationY = targetY.Clamp (-Content.Height * (_currentScale - 1), 0); Content.Scale = _currentScale; } if (e.Status == GestureStatus.Completed) { xOffset = Content.TranslationX; yOffset = Content.TranslationY; } }; GestureRecognizers.Add (pinch); GestureRecognizers.Add (pan); }
public MainPage () { InitializeComponent (); BindingContext = new { SvgAssembly = typeof(App).GetTypeInfo ().Assembly, CanvasHeight = App.CanvasHeight }; NavigationPage.SetHasNavigationBar(this, false); //TapGestureRecognizer crossTapGestureRecognizer = new TapGestureRecognizer(); TapGestureRecognizer canvasTapGestureRecognizer = new TapGestureRecognizer(); PanGestureRecognizer canvasPanGestureRecognizer = new PanGestureRecognizer(); // crossTapGestureRecognizer.Tapped += (object sender, EventArgs e) => { // ChangeTempWindow.Hide(); // ChangeGeoWindow.Hide(); // }; ArrowsInitialize (); ChangeTempWindow.Initialize (); //ChangeTempWindowCross.GestureRecognizers.Add (crossTapGestureRecognizer); ChangeGeoWindow.Initialize (); //ChangeGeoWindowCross.GestureRecognizers.Add (crossTapGestureRecognizer); ClothWindow.Initialize (true); HeadClickZone.GestureRecognizers.Add (canvasTapGestureRecognizer); BodyClickZone.GestureRecognizers.Add (canvasTapGestureRecognizer); PantsClickZone.GestureRecognizers.Add (canvasTapGestureRecognizer); ShoesClickZone.GestureRecognizers.Add (canvasTapGestureRecognizer); HeadClickZone.GestureRecognizers.Add (canvasPanGestureRecognizer); BodyClickZone.GestureRecognizers.Add (canvasPanGestureRecognizer); PantsClickZone.GestureRecognizers.Add (canvasPanGestureRecognizer); ShoesClickZone.GestureRecognizers.Add (canvasPanGestureRecognizer); ColorPickerWindow.Initialize (false, true); AllColorsButton.Clicked += (object sender, EventArgs e) => { ColorPickerWindow.Show(); }; canvasTapGestureRecognizer.Tapped += (object sender, EventArgs e) => { ClothType type = ClothType.Head; if(sender.Equals(HeadClickZone)) type = ClothType.Head; if(sender.Equals(BodyClickZone)) type = ClothType.Body; if(sender.Equals(PantsClickZone)) type = ClothType.Pants; if(sender.Equals(ShoesClickZone)) type = ClothType.Shoes; if(DBClothes(type).Count == 0) return; if(type == ClothType.Head && DBHeads[CurrentHead].Id == 142) return; if(type == ClothType.Pants && DBBodies[CurrentBody].IsDress) return; ClothWindow.Type = type; ClothWindowSvgContainer.Content = new CWCloth { SvgPath = "ClothesAndWeather.Images.ClothesDB." + DBClothes(type) [CurrentCloth(type)].ImagePreview, Color = ((CWCloth)ClothView(type).Content).Color, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, WidthRequest = 120, HeightRequest = 120, Aspect = Aspect.AspectFit }; ClothTitleLabel.Text = DBClothes(type) [CurrentCloth(type)].Name; ClothDescLabel.Text = DBClothes(type) [CurrentCloth(type)].Description; List<ClothExample> examples = Sex == Sex.Male ? DBClothes(type) [CurrentCloth(type)].ManClothes : DBClothes(type) [CurrentCloth(type)].WomanClothes; if(examples == null) examples = new List<ClothExample>(); ClothExamples.Children.Clear(); ClothExamples.Children.Add(new Label { Text = "Похожие вещи в магазине:", FontSize = 12 }); StackLayout line = new StackLayout(); for(var i = 0; i < examples.Count; i++) { if(i % 2 == 0) line = new StackLayout { Orientation = StackOrientation.Horizontal, Spacing = 25, HorizontalOptions = LayoutOptions.Center }; var frame = new CWClothExample(); frame.Content = new Image { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, Aspect = Aspect.AspectFit, Source = ImageSource.FromUri(new Uri("http:" + examples[i].Image)) }; var recognizer = new TapGestureRecognizer(); string link = examples[i].Link; recognizer.Tapped += (object sender1, EventArgs e1) => { App.IOSAppDelegate.OpenUrlInBrowser(Utils.AdmitadLink(link)); }; frame.GestureRecognizers.Add(recognizer); line.Children.Add(frame); if(i == examples.Count - 1 && i % 2 == 0) { line.WidthRequest = (frame.WidthRequest + frame.Padding.Left + frame.Padding.Right) * 2 + line.Spacing; frame.HorizontalOptions = LayoutOptions.Start; } if(i % 2 == 1 || i == examples.Count - 1) ClothExamples.Children.Add(line); } ClothWindow.Show(); }; PanUpdatedEventArgs lastPan = new PanUpdatedEventArgs(GestureStatus.Completed, 0, 0, 0); canvasPanGestureRecognizer.PanUpdated += (object sender, PanUpdatedEventArgs e) => { ClothType type = ClothType.Head; if(sender.Equals(HeadClickZone)) type = ClothType.Head; if(sender.Equals(BodyClickZone)) type = ClothType.Body; if(sender.Equals(PantsClickZone)) type = ClothType.Pants; if(sender.Equals(ShoesClickZone)) type = ClothType.Shoes; if(e.StatusType == GestureStatus.Completed) { double x = lastPan.TotalX; double y = lastPan.TotalY; System.Diagnostics.Debug.WriteLine(x + " " + y); if(Math.Abs(y) <= 25 && Math.Abs(x) >= 40) { CallArrow(Arrow(type, (int)(x / Math.Abs(x)))); } } lastPan = e; }; Action<object, EventArgs> changePreviewColor = (object sender, EventArgs e) => { ClothWindowSvgContainer.Content = new CWCloth { SvgPath = ((CWCloth)ClothWindowSvgContainer.Content).SvgPath, Color = ((Button)sender).BackgroundColor, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, WidthRequest = 120, HeightRequest = 120, Aspect = Aspect.AspectFit }; }; BlackColorButton.Clicked += (object sender, EventArgs e) => { changePreviewColor.Invoke(sender, e); }; WhiteColorButton.Clicked += (object sender, EventArgs e) => { changePreviewColor.Invoke(sender, e); }; for (int i = 0; i < ColorsGrid.Children.Count; i++) { ((Button)ColorsGrid.Children[i]).Clicked += (object sender, EventArgs e) => { changePreviewColor.Invoke(sender, e); ColorPickerWindow.Hide(); }; } ColorReadyButton.Clicked += (object sender, EventArgs e) => { SwitchClothColor((ClothType)ClothWindow.Type, ((CWCloth)ClothWindowSvgContainer.Content).Color); ClothWindow.Hide(); }; // ClothesOnlineButton.Clicked += (object sender, EventArgs e) => { // Cloth cloth = DBClothes((ClothType)ClothWindow.Type)[CurrentCloth((ClothType)ClothWindow.Type)]; // App.IOSAppDelegate.OpenUrlInBrowser(cloth.GetLamodaLink(Sex)); // }; #region BottomMenu TapGestureRecognizer menuTapGestureRecognizer = new TapGestureRecognizer(); TapGestureRecognizer menu3TapGestureRecognizer = new TapGestureRecognizer(); switch (Sex) { case Sex.Male: ((SvgImage)menu3.Content).SvgPath = "ClothesAndWeather.Images.menu3m.svg"; break; case Sex.Female: ((SvgImage)menu3.Content).SvgPath = "ClothesAndWeather.Images.menu3f.svg"; break; } menu1.GestureRecognizers.Add (menuTapGestureRecognizer); TempLabel.GestureRecognizers.Add(menuTapGestureRecognizer); WeatherConditionImage.GestureRecognizers.Add(menuTapGestureRecognizer); menu4.GestureRecognizers.Add (menuTapGestureRecognizer); CityAndDT.GestureRecognizers.Add (menuTapGestureRecognizer); menuTapGestureRecognizer.Tapped += (object sender, EventArgs e) => { //SvgImage btn = (SvgImage)sender; var btn = sender; if(btn.Equals(menu1) || btn.Equals(TempLabel) || btn.Equals(WeatherConditionImage)) { ChangeTempWindow.Show(); } else if(btn.Equals(menu4) || btn.Equals(CityAndDT)) { ChangeGeoWindow.Show(); } }; menu3.GestureRecognizers.Add (menu3TapGestureRecognizer); menu3TapGestureRecognizer.Tapped += (object sender, EventArgs e) => { string newpath = ""; switch(Sex) { case Sex.Male: newpath = "ClothesAndWeather.Images.menu3f.svg"; App.SetSex(Sex.Female); break; case Sex.Female: newpath = "ClothesAndWeather.Images.menu3m.svg"; App.SetSex(Sex.Male); break; } menu3.Content = new SvgImage { SvgPath = newpath, SvgAssembly = typeof(App).GetTypeInfo().Assembly }; RefreshFilters(); }; PlacePicker.Unfocused += async (object sender, FocusEventArgs e) => { switch(PlacePicker.SelectedIndex) { case 0: App.SetPlace(Place.Walk); await Navigation.PushModalAsync(new SelectWalkTimePage(false), false); break; case 1: App.SetPlace(Place.Business); RefreshFilters(); break; case 2: App.SetPlace(Place.Formal); RefreshFilters(); break; case 3: App.SetPlace(Place.Celebration); RefreshFilters(); break; case 4: App.SetPlace(Place.Sport); RefreshFilters(); break; } }; #endregion #region TempAndCityWindows SetUserTemp.Clicked += (object sender, EventArgs e) => { if(String.IsNullOrEmpty(UserTemp.Text) || UserWeatherTagPicker.SelectedIndex == -1) { if(String.IsNullOrEmpty(UserTemp.Text)) HighlightView(UserTemp); if(UserWeatherTagPicker.SelectedIndex == -1) HighlightView(UserWeatherTagPicker); return; } try { Temperature = Convert.ToInt32(UserTemp.Text); } catch(Exception ex) { HighlightView(UserTemp); return; } if(Temperature < -50 || Temperature > 40) { HighlightView(UserTemp); return; } UserTemp.Unfocus(); TempLabel.Text = Temperature + " °C"; WeatherTag = Utils.PickerValueToTag (UserWeatherTagPicker.SelectedIndex); WeatherConditionImage.Content = new SvgImage { SvgPath = "ClothesAndWeather.Images.Tags." + WeatherTag + ".svg", SvgAssembly = typeof(App).GetTypeInfo ().Assembly }; RefreshFilters(); ChangeTempWindow.Hide(); }; SetAutoTemp.Clicked += (object sender, EventArgs e) => { GetOpenWeatherData (() => { RefreshFilters (); ChangeTempWindow.Hide(); }, () => { }, true); }; SetUserCity.Clicked += (object sender, EventArgs e) => { if(String.IsNullOrEmpty(UserCity.Text)) { HighlightView(UserCity); return; } UserCity.Unfocus(); string oldCity = City; City = UserCity.Text; GetOpenWeatherData (() => { CityLabel.Text = City; RefreshFilters (); ChangeGeoWindow.Hide(); }, () => { HighlightView(UserCity); City = oldCity; }, false); GetTimeByCity(() => {}); }; SetAutoCity.Clicked += (object sender, EventArgs e) => { GetGoogleCityName (); GetOpenWeatherData (() => { TimeZone = null; DTSwitchOnce(); RefreshFilters(); ChangeGeoWindow.Hide(); }, () => { }, true); }; #endregion #region Arrows TapGestureRecognizer clothesArrowsTapGestureRecognizer = new TapGestureRecognizer(); HeadLeft.GestureRecognizers.Add(clothesArrowsTapGestureRecognizer); HeadRight.GestureRecognizers.Add(clothesArrowsTapGestureRecognizer); BodyLeft.GestureRecognizers.Add(clothesArrowsTapGestureRecognizer); BodyRight.GestureRecognizers.Add(clothesArrowsTapGestureRecognizer); PantsLeft.GestureRecognizers.Add(clothesArrowsTapGestureRecognizer); PantsRight.GestureRecognizers.Add(clothesArrowsTapGestureRecognizer); ShoesLeft.GestureRecognizers.Add(clothesArrowsTapGestureRecognizer); ShoesRight.GestureRecognizers.Add(clothesArrowsTapGestureRecognizer); clothesArrowsTapGestureRecognizer.Tapped += (object sender, EventArgs e) => { CWArrow btn = (CWArrow)sender; CallArrow(btn); }; #endregion EnableDTSwitch (); GetGoogleCityName (); GetOpenWeatherData (() => { RefreshFilters (); }, () => { }, true); }