Window/WPF2011. 6. 22. 21:38
Brush 속성의 색상을 변경시키는 애니메이션에 대한 내용입니다.

ColorAnimation 으로,
TabItem 컨트롤, Rectangle 컨트롤, Border 컨트롤 등의 Brush 속성 값을 변경시킵니다.

Storyboard.SetTargetPropertyPropertyPath 속성으로
Brush 관련 프로퍼티 후에 SolidColorBrush.ColorProperty를 연결 시킵니다.

예 ) Rectangle 컨트롤의 Fill 속성 변경 시

Storyboard.SetTargetProperty(colorAnimation, new PropertyPath("(0).(1)",

  new DependencyProperty[]

  {

      Shape.FillProperty,

      SolidColorBrush.ColorProperty

  }));

다음은 TabItem, Rectangle, Border 의 Brush 속성들을 변경시키는 예제입니다.

[ 실행화면 ]

 

 [ 소스 코드 ]

  void MainWindow_Loaded(object sender, RoutedEventArgs e)

  {

        tabItem.BeginStoryboard(CreateStoryboard(Colors.Blue, Border.BorderBrushProperty));

        rectangle.BeginStoryboard(CreateStoryboard(Colors.LightSeaGreen, Shape.FillProperty));

        rectangle.BeginStoryboard(CreateStoryboard(Colors.Green, Shape.StrokeProperty));

        border.BeginStoryboard(CreateStoryboard(Colors.Red, Border.BorderBrushProperty));

   }

 

  Storyboard CreateStoryboard(Color color, DependencyProperty property)

  {

       ColorAnimation colorAnimation =
                      new ColorAnimation(color, new Duration(TimeSpan.FromSeconds(2)));

 

       Storyboard.SetTargetProperty(colorAnimation, new PropertyPath("(0).(1)",

             new DependencyProperty[]

             {

                  property,

                  SolidColorBrush.ColorProperty

             }));

 

        Storyboard storyBoard = new Storyboard()

        {

             AutoReverse = true,

             RepeatBehavior = RepeatBehavior.Forever,              

        };

           

        storyBoard.Children.Add(colorAnimation);

 

        return storyBoard;

  }







Posted by 열ㅇl