コード例 #1
0
ファイル: ImageSlide.cs プロジェクト: ThinhVu/Mmosoft.Oops
 private void SetupFlyinAnim()
 {
     flyinAnim = new Animator()
     {
         OnCompleted = () =>
         {
             currentIndex       = newIndex;
             drawPrev           = imgs.Count > 0 && currentIndex > 0;
             drawNext           = currentIndex < imgs.Count - 1;
             opacityBrush.Color = Color.FromArgb(0, Color.Black);
             RecalcImageRect();
         }
     };
     flyinAnim.Add(new Step
     {
         Interval   = 20, // ms
         TotalStep  = step,
         AnimAction = (stepI) =>
         {
             // current
             currentImgRect     = currentImgRect.AdjustXF(direction * vCurrentHor);
             opacityBrush.Color = Color.FromArgb(255 - stepI * opacityStep, Color.Black);
             // next
             newImgRect = newImgRect.AdjustSizeFromCenter(vNewHor, vNewVer);
             Invalidate();
         }
     });
 }
コード例 #2
0
ファイル: ImageSlide.cs プロジェクト: ThinhVu/Mmosoft.Oops
        private void FlyOut()
        {
            // setup to reduce size of new image
            currentImgRect = ImageDisplayModeHelper.GetImageRect(
                this.ClientRectangle,
                new Rectangle(Point.Empty, imgs[currentIndex].Size),
                DisplayMode.ScaleLossLessCenter);
            int offsetSizeHor = 40;
            int offsetSizeVer = (int)(offsetSizeHor * 1f * currentImgRect.Height / currentImgRect.Width);

            vNewHor = -1f * offsetSizeHor / step;
            vNewVer = -1f * offsetSizeVer / step;

            //
            newImgRect = ImageDisplayModeHelper.GetImageRect(
                this.ClientRectangle,
                new Rectangle(Point.Empty, imgs[newIndex].Size),
                DisplayMode.ScaleLossLessCenter);
            // setup prev image on the left
            newImgRect = newImgRect.AdjustXF(-newImgRect.Right);
            // and move direction is to the right
            direction   = 1;
            s           = (int)(0.5 * (this.Width + newImgRect.Width));
            vCurrentHor = s / step;

            flyoutAnim.Start();
        }