private async Task HandleStrokeData(byte[] data, int index) { if (index == PhotoTimeline.CurrentItemIndex) { var view = PhotoTimeline.FindChildren <SlideshowSlideView>().ElementAt(index); await view.UpdateStrokes(data); } }
private void UpdateSize() { var size = Math.Min(ActualHeight, ActualWidth) - 20; foreach (var view in PhotoTimeline.FindChildren <SlideshowSlideView>()) { view.Height = view.Width = size; } if (PhotoTimeline.TimelinePanel != null) { PhotoTimeline.TimelinePanel.ItemSpacing = ActualWidth / 2; } }
private void SlideshowSlideView_Tapped(object sender, TappedRoutedEventArgs e) { var view = sender as SlideshowSlideView; var items = PhotoTimeline.FindChildren <TimelineItem>().ToList(); if (PhotoTimeline.TimelinePanel.IsLocked) { PhotoTimeline.TimelinePanel.IsLocked = false; HandleIndexUpdateFromHost(_hostSlide); for (var i = 0; i < items.Count(); i++) { items[i].Fade(1).Start(); items[i].IsHitTestVisible = true; } } else { PhotoTimeline.TimelinePanel.IsLocked = true; var photoIndex = _adventure.Photos.IndexOf(view.Photo); var size = Math.Min(ActualWidth, ActualHeight); float scale = (float)size / (float)view.Height; float center = (float)view.Height / 2; view.Scale(scale, scale, center, center, duration: 200).Start(); PhotoTimeline.CurrentItemIndex = photoIndex; SendIndexUpdate(); for (var i = 0; i < items.Count(); i++) { if (i != photoIndex) { items[i].Fade(0, 200).Start(); items[i].IsHitTestVisible = false; } } if (_selectedSlide != null && _selectedSlide != view) { _selectedSlide?.Scale(1, 1, center, center, 100).Start(); } _selectedSlide = view; } }
private void HandleIndexUpdateFromHost(int index) { _hostSlide = index; if (!PhotoTimeline.TimelinePanel.IsLocked) { var items = PhotoTimeline.FindChildren <TimelineItem>().ToList(); for (int i = 0; i < items.Count; i++) { var view = items[i].Content as SlideshowSlideView; float center = (float)view.Height / 2; if (i != index) { view.Scale(1f, 1f, centerX: center, centerY: center, duration: 200).Start(); } else { view.Scale(1.2f, 1.2f, centerX: center, centerY: center, duration: 200).Start(); } } } }