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

■ Behavior<T> 클래스 : 투명도 Behavior 구현하기

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

Expression Blend 참조 추가

 

 

Microsoft.Expression.Interactions

 

 

C#

 

 

using System;

using System.Windows;

using System.Windows.Input;

using System.Windows.Interactivity;

 

namespace CustomBehaviorApplication

{

    /// <summary>

    /// 투명도 비헤이비어

    /// </summary>

    public class OpacityBehavior : Behavior<UIElement>

    {

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

        ////////////////////////////////////////////////////////////////////////////////////////// Protected

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

 

        #region 부착시 처리하기 - OnAttached()

 

        /// <summary>

        /// 부착시 처리하기

        /// </summary>

        protected override void OnAttached()

        {

            base.OnAttached();

 

            AssociatedObject.MouseWheel += new MouseWheelEventHandler(AssociatedObject_MouseWheel);

        }

 

        #endregion

 

        #region 탈착중 처리하기 - OnDetaching()

 

        /// <summary>

        /// 탈착중 처리하기

        /// </summary>

        protected override void OnDetaching()

        {

            base.OnDetaching();

 

            AssociatedObject.MouseWheel -= new MouseWheelEventHandler(AssociatedObject_MouseWheel);

        }

 

        #endregion

 

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

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

 

        #region 결합 객체 마우스 휠시 처리하기 - AssociatedObject_MouseWheel(sender, e)

 

        /// <summary>

        /// 결합 객체 마우스 휠시 처리하기

        /// </summary>

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

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

        private void AssociatedObject_MouseWheel(object sender, MouseWheelEventArgs e)

        {

            if(e.Delta > 0)

            {

                AssociatedObject.Opacity = Math.Max(0d, AssociatedObject.Opacity - 0.1d);

            }

            else if(e.Delta < 0)

            {

                AssociatedObject.Opacity = Math.Min(1d, AssociatedObject.Opacity + 0.1d);

            }

        }

 

        #endregion

    }

}

 

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

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요