コード例 #1
0
        public bool SetImages(List <string> imagePaths, int startIndex = 0)
        {
            imagePaths = imagePaths.Where(x => File.Exists(x)).ToList();
            if (imagePaths.Count == 0)
            {
                return(false);
            }

            if (startIndex < 0 || startIndex > imagePaths.Count)
            {
                startIndex = imagePaths.Count - 1;
            }

            m_alpha  = 1.0F;
            m_index  = startIndex;
            m_images = imagePaths;
            m_state  = SlideshowState.Wait;
            m_timer.Stop();

            pbImage.CancelAsync();
            pbImage.ImageLocation = m_images[m_index];

            // Don't cycle with one image
            if (imagePaths.Count == 1)
            {
                return(true);
            }

            m_timer.Start();
            m_fadeOut.Restart();

            InitBlendCache();

            return(true);
        }
コード例 #2
0
        private void HandleState()
        {
            switch (m_state)
            {
            case SlideshowState.SetImage:
                m_state = SlideshowState.FadeIn;
                m_alpha = 0.0F;
                m_fadeOut.Restart();
                SetImage();

                m_fadeCount = FadeTimes;
                break;

            case SlideshowState.FadeIn:
                Fade(1.0F / FadeTimes);
                if (m_fadeCount == 0)
                {
                    m_state = SlideshowState.Wait;
                }
                break;

            case SlideshowState.Wait:
                if (m_fadeOut.ElapsedMilliseconds >= ImageMilliseconds - FadeMilliseconds)
                {
                    m_fadeCount = FadeTimes;
                    m_state     = SlideshowState.FadeOut;
                }
                break;

            case SlideshowState.FadeOut:
                Fade(-1.0F / FadeTimes);
                if (m_fadeCount == 0)
                {
                    m_index++;
                    m_index %= m_images.Count;
                    m_state  = SlideshowState.SetImage;
                }
                break;
            }
        }