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;
            }
        }
Esempio n. 3
0
        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;
            }
        }
Esempio n. 4
0
        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();
                    }
                }
            }
        }