참조 : http://blogs.msdn.com/llobo/archive/200 ··· ing.aspx

만약 여러분이 실버라이트에 익숙하다면 새로운 것은 없습니다. 이 속성 FrameworkElement에 새로이 추가가 되었었는데 각 길이를 반올림 하는 기능입니다. 기본 값은 실버라이트와 다르게 False이며 값을 설정하게 되면 자식 요소에 상속 됩니다. 이 속성을 설정한 것과 설정하지 않은 것은 다음과 같이 차이를 볼 수 있습니다.

사용자 삽입 이미지

예제 코드는 다음과 같습니다.

사용자 삽입 이미지

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/12/30 17:25 2009/12/30 17:25
Posted by 나는산.
TAGS

Leave your greetings here.

[로그인][오픈아이디란?]
참조 : http://blogs.msdn.com/llobo/archive/200 ··· ogs.aspx

기존 OpenFileDialog나 SaveFileDialog가 XP 스타일 이였던 것을 Windows Vista/7 스타일로 수정되었습니다.

기존에는 다음과 같았으나,

사용자 삽입 이미지
다음과 같이 변경되었습니다.

사용자 삽입 이미지



크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/12/30 16:02 2009/12/30 16:02
Posted by 나는산.
TAGS

Leave your greetings here.

[로그인][오픈아이디란?]

참조 : http://blogs.msdn.com/llobo/archive/200 ··· ons.aspx

Easing 함수들은 여러분들의 애니메이션들에 사용자 정의 수학 방정식들을 추가할 수 있게 해줍니다. 이런 사용자 정의 수학 방정식들을 이용하면 애니매이션들은 더 실제와 같거나 부드럽습니다. WPF 4에서는 이런 사용자 정의 수학 방정식 11개가 미리 정의 되어 있습니다. 이들 각 함수들은 3개의 모드(EaseIn, EaseOut, EaseInOut)를 가집니다.

이번 WPF 4에서 기존에 있었거나 새롭게 추가된 애니매이션 관련 클래스들 - ByteAnimation, ColorAnimation, DecimalAnimation, DoubleAnimation, Int16Animation, Int32Animation, Int64Animation, Point3DAnimation, PointAnimation, QuaternionAnimation, RectAnimation, Rotation3DAnimation, SingleAnimation, SizeAnimation, ThicknessAnimation, Vector3DAnimation, VectorAnimation 등 - 전반적으로 EasingFunction 속성이 추가되었다. 이 속성은 IEasingFunction이라는 인터페이스로 정의 되어 있으며, 이것은 개발자에게 다양한 효과를 애니메이션에 적용할 수 있도록 만들수 있도록 해줍니다.

IEasingFunction에 대해서 더 자세하게 얘기하자면 0과 1사이의 정규화된 시간에 각각 값을 반환할 수 있는 함수를 만들 수 있도록 해준다. 쉽게 얘기하면 0은 애니메이션이 시작하는 값이고 1은 애니메이션이 끝나는 값을 가리킵니다.

WPF 4에서는 IEasingFunction을 상속받아 미리 정의해놓은 클래스가 11개가 있다고 했습니다. 이들은 클래스는 공통적으로 System.Windows.Media.Animation.EasingFunctionBase 클래스를 상속합니다. 대부분 미리 정의해 놓은 EasingFunction을 사용하지 않고 사용자가 직접 개발한다면 이 클래스를 상속 받아 사용합니다. EaseInCore 함수를 오버라이드 하여 작성하면 되는데 다음과 같이 하면 됩니다.

namespace CustomEasingFunction
{
    public class CustomSeventhPowerEasingFunction : EasingFunctionBase
    {
        public CustomSeventhPowerEasingFunction()
            : base()
        {
        }

        // Specify your own logic for the easing function by overriding

        // the EaseInCore method. Note that this logic applies to the "EaseIn"

        // mode of interpolation. 

        protected override double EaseInCore(double normalizedTime)
        {
            // applies the formula of time to the seventh power.

            return Math.Pow(normalizedTime, 7);
        }

        // Typical implementation of CreateInstanceCore

        protected override Freezable CreateInstanceCore()
        {

            return new CustomSeventhPowerEasingFunction();
        }

    }
}

EasingFunctionBase는 EasingMode 속성을 가지고 있습니다. EasingMode는 다음과 같이 3가지 모드가 있습니다.
- EaseIn : 기본 EaseInCore 구현대로 작동됩니다.
- EaseOut : 기본 EaseInCore와 반대로 작동됩니다. (X, Y좌표 -1 곱한값)
- EaseInOut : EaseIn 실행후 EaseOut 실행됩니다.

미리 정의해놓은 EasingFunction은 다음과 같습니다.

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

결론적으로 어떻게 보면 기존 Spline 사용하는 것을 더 넓게 적용, 더 자세하게 제어할 수 있게 되었다고 생각하면 될 것 같습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/12/30 15:40 2009/12/30 15:40
Posted by 나는산.
TAGS

Leave your greetings here.

[로그인][오픈아이디란?]
« Previous : 1 : 2 : 3 : 4 : 5 : ... 184 : Next »