첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
------------------------------------------------------------------------------------------------------------------------------------------------------
728x90
728x170

▶ Expression Blend 참조 추가

Microsoft.Expression.Interactions

 

728x90

 

▶ 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
    }
}

 

728x90
그리드형(광고전용)
Posted by icodebroker
,