첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ ImageSlider 클래스 : 가상 모드 사용하기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


MainForm.cs

 

 

using System.Drawing;

 

using DevExpress.Utils.Drawing;

using DevExpress.XtraEditors;

using DevExpress.XtraEditors.Controls;

 

namespace TestProject

{

    /// <summary>

    /// 메인 폼

    /// </summary>

    public partial class MainForm : XtraForm

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Field

        ////////////////////////////////////////////////////////////////////////////////////////// Private

 

        #region Field

 

        /// <summary>

        /// 이미지 배열

        /// </summary>

        private Image[] imageArray;

 

        /// <summary>

        /// 현재 이미지 인덱스

        /// </summary>

        private int currentImageIndex = 0;

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor

        ////////////////////////////////////////////////////////////////////////////////////////// Public

 

        #region 생성자 - MainForm()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public MainForm()

        {

            InitializeComponent();

 

            this.imageArray = GetImageArray();

 

            this.imageSlider.LayoutMode  = ImageLayoutMode.MiddleCenter;

            this.imageSlider.VirtualMode = true;

 

            this.imageSlider.CanGetNextPrevImage += imageSlider_CanGetNextPrevImage;

            this.imageSlider.GetImage            += imageSlider_GetImage;

 

            this.imageSlider.UpdateImage();

        }

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Private

        //////////////////////////////////////////////////////////////////////////////// Event

 

        #region 이미지 슬라이더 다음/이전 이미지 획득 가능 여부 구하기 - imageSlider_CanGetNextPrevImage(sender, e)

 

        /// <summary>

        /// 이미지 슬라이더 다음/이전 이미지 획득 가능 여부 구하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        private void imageSlider_CanGetNextPrevImage(object sender, CanGetNextPrevImageEventArgs e)

        {

            if(e.IsNext)

            {

                e.CanGetImage = (currentImageIndex < imageArray.Length - 1);

            }

            else

            {

                e.CanGetImage = (currentImageIndex > 0);

            }

        }

 

        #endregion

        #region 이미지 슬라이더 이미지 획득시 처리하기 - imageSlider_GetImage(sender, e)

 

        /// <summary>

        /// 이미지 슬라이더 이미지 획득시 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        private void imageSlider_GetImage(object sender, GetImageEventArgs e)

        {

            if(e.IsStartUp)

            {

                e.Image = imageArray[0];

 

                return;

            }

 

            if(e.IsNext)

            {

                e.Image = imageArray[currentImageIndex + 1];

 

                if(e.CurrentImageUpdated)

                {

                    ++currentImageIndex;

                }

            }

            else if(e.IsPrev)

            {

                e.Image = imageArray[currentImageIndex - 1];

 

                if(e.CurrentImageUpdated)

                {

                    --currentImageIndex;

                }

            }

        }

 

        #endregion

 

        //////////////////////////////////////////////////////////////////////////////// Function

 

        #region 이미지 구하기 - GetImage(color)

 

        /// <summary>

        /// 이미지 구하기

        /// </summary>

        /// <param name="color">색상</param>

        /// <returns>이미지</returns>

        private Image GetImage(Color color)

        {

            Bitmap bitmap = new Bitmap(300, 300);

 

            for(int i = 0; i < bitmap.Width; i++)

            {

                for(int j = 0; j < bitmap.Height; j++)

                {

                    bitmap.SetPixel(i, j, color);

                }

            }

 

            return bitmap;

        }

 

        #endregion

        #region 이미지 배열 구하기 - GetImageArray()

 

        /// <summary>

        /// 이미지 배열 구하기

        /// </summary>

        /// <returns>이미지 배열</returns>

        private Image[] GetImageArray()

        {

            return new Image[]

            {

                GetImage(Color.Red  ),

                GetImage(Color.Green),

                GetImage(Color.Blue )

            };

        }

 

        #endregion

    }

}

 

------------------------------------------------------------------------------------------------------------------------

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요