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

■ Storyboard 클래스 : 코드 구현하기

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


TestProject.zip



MainWindow.xaml

 

 

<Window x:Class="TestProject.MainWindow"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    Width="800"

    Height="600"

    Title="Storyboard 클래스 : 코드 구현하기"

    FontFamily="나눔고딕코딩"

    FontSize="16">

</Window>

 

 

MainWindow.xaml.cs

 

 

using System;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Media.Animation;

using System.Windows.Media;

 

namespace TestProject

{

    /// <summary>

    /// 메인 윈도우

    /// </summary>

    public partial class MainWindow : Window

    {

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

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

 

        #region 생성자 - MainWindow()

 

        /// <summary>

        /// 생성자

        /// </summary>

        public MainWindow()

        {

            // Page 객체에 대해 NameScope 객체를 설정합니다.

            NameScope.SetNameScope(this, new NameScope());

 

            #region StackPanel 객체를 생성한다.

 

            StackPanel stackPanel = new StackPanel();

 

            stackPanel.HorizontalAlignment = HorizontalAlignment.Center;

 

            Content = stackPanel;

 

            #endregion

            #region Border 객체를 생성한다.

 

            Border border = new Border();

 

            border.Margin          = new Thickness(0, 60, 0, 20);

            border.BorderBrush     = Brushes.Black;

            border.BorderThickness = new Thickness(1);

            border.Background      = Brushes.Gray;

            border.Padding         = new Thickness(20);

 

            stackPanel.Children.Add(border);

 

            // Storyboard.TargetName 첨부 속성 설정을 위해 Border 객체의 명칭을 등록한다.

            RegisterName("border", border);

 

            #endregion

            #region ThicknessAnimation 객체를 생성한다.

 

            ThicknessAnimation thicknessAnimation = new ThicknessAnimation();

 

            thicknessAnimation.RepeatBehavior = RepeatBehavior.Forever;

            thicknessAnimation.AutoReverse    = true;

            thicknessAnimation.Duration       = TimeSpan.FromSeconds(1);

            thicknessAnimation.From           = new Thickness(1, 1, 1, 1);

            thicknessAnimation.To             = new Thickness(56, 28, 56, 28);

 

            Storyboard.SetTargetName(thicknessAnimation, "border");

            Storyboard.SetTargetProperty(thicknessAnimation, new PropertyPath(Border.BorderThicknessProperty));

 

            #endregion

            #region Storyboard 객체를 생성한다.

 

            Storyboard storyboard = new Storyboard();

 

            storyboard.Children.Add(thicknessAnimation);

 

            #endregion

 

            border.Loaded += delegate(object sender, RoutedEventArgs e)

            {

                storyboard.Begin(this);

            };

        }

 

        #endregion

    }

}

 

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

Posted by 사용자 icodebroker

댓글을 달아 주세요