728x90
반응형
728x170
▶ XAML
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Storyboard x:Name="storyboard1"
Completed="storyboard_Completed">
<DoubleAnimation x:Name="doubleAnimation1"
Storyboard.TargetProperty="Opacity"
AutoReverse="True"
Duration="0:0:2"
From="1.0"
To="0.0" />
</Storyboard>
<Storyboard x:Name="storyboard2"
Completed="storyboard_Completed">
<DoubleAnimation x:Name="doubleAnimation2"
Storyboard.TargetProperty="Opacity"
AutoReverse="True"
Duration="0:0:2"
From="1.0"
To="0.0" />
</Storyboard>
<Storyboard x:Name="storyboard3"
Completed="storyboard_Completed">
<DoubleAnimation x:Name="doubleAnimation3"
Storyboard.TargetProperty="Opacity"
AutoReverse="True"
Duration="0:0:2"
From="1.0"
To="0.0" />
</Storyboard>
</StackPanel.Resources>
<Rectangle x:Name="rectangle1"
Margin="3"
Width="100"
Height="100"
Fill="Blue"
MouseLeftButtonDown="rectangle_MouseLeftButtonDown" />
<Rectangle x:Name="rectangle2"
Margin="3"
Width="100"
Height="100"
Fill="Blue"
MouseLeftButtonDown="rectangle_MouseLeftButtonDown" />
<Rectangle x:Name="rectangle3"
Margin="3"
Width="100"
Height="100"
Fill="Blue"
MouseLeftButtonDown="rectangle_MouseLeftButtonDown" />
<Rectangle x:Name="rectangle4"
Margin="3"
Width="100"
Height="100"
Fill="Blue"
MouseLeftButtonDown="rectangle_MouseLeftButtonDown" />
</StackPanel>
728x90
▶ C#
using System;
using System.Windows.Input;
using System.Windows.Shapes;
using System.Windows.Media.Animation;
/// <summary>
/// 스토리보드 1 활성 여부
/// </summary>
bool isStoryboard1Active = false;
/// <summary>
/// 스토리보드 2 활성 여부
/// </summary>
bool isStoryboard2Active = false;
/// <summary>
/// 스토리보드 3 활성 여부
/// </summary>
bool isStoryboard3Active = false;
#region 스토리보드 완료시 처리하기 - storyboard_Completed(sender, e)
/// <summary>
/// 스토리보드 완료시 처리하기
/// </summary>
/// <param name="pSender">이벤트 발생자</param>
/// <param name="pEventArgs">이벤트 인자</param>
private void storyboard_Completed(object sender, EventArgs e)
{
Storyboard storyboard = sender as Storyboard;
switch(storyboard.GetValue(NameProperty).ToString())
{
case "storyboard1" : this.isStoryboard1Active = false; break;
case "storyboard2" : this.isStoryboard2Active = false; break;
case "storyboard3" : this.isStoryboard3Active = false; break;
}
}
#endregion
#region 사각형 마우스 왼쪽 버튼 DOWN시 처리하기 - rectangle_MouseLeftButtonDown(sender, e)
/// <summary>
/// 사각형 마우스 왼쪽 버튼 DOWN시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void rectangle_MouseLeftButtonDown(object sender, MouseEventArgs e)
{
Rectangle rectangle = pSender as Rectangle;
if(!this.isStoryboard1Active)
{
this.storyboard1.Stop();
this.doubleAnimation1.SetValue(Storyboard.TargetNameProperty, rectangle.Name);
this.storyboard1.Begin();
this.isStoryboard1Active = true;
}
else if(!this.isStoryboard2Active)
{
this.storyboard2.Stop();
this.doubleAnimation2.SetValue(Storyboard.TargetNameProperty, rectangle.Name);
this.storyboard2.Begin();
this.isStoryboard2Active = true;
}
else if(!this.isStoryboard3Active)
{
this.storyboard3.Stop();
this.doubleAnimation3.SetValue(Storyboard.TargetNameProperty, rectangle.Name);
this.storyboard3.Begin();
this.isStoryboard3Active = true;
}
}
#endregion
728x90
반응형
그리드형(광고전용)
'C# > Silverlight' 카테고리의 다른 글
[C#/SILVERLIGHT] MediaElement 엘리먼트 : CurrentStateChanged 이벤트 사용하기 (0) | 2014.03.06 |
---|---|
[C#/SILVERLIGHT] PointAnimation 엘리먼트 : 실행시 To 속성 동적 변경하기 (0) | 2014.03.06 |
[C#/SILVERLIGHT] PointAnimationUsingKeyFrames 엘리먼트 : 실행시 자식 속성 동적 사용하기 (0) | 2014.03.06 |
[C#/SILVERLIGHT] SplineDoubleKeyFrame 엘리먼트 사용하기 (0) | 2014.03.06 |
[C#/SILVERLIGHT] Storyboard 엘리먼트 : 실행시 TargetName 속성 동적 사용하기 (0) | 2014.03.06 |
[C#/SILVERLIGHT] DoubleAnimation 엘리먼트 : 사각형을 투명하게 만들기 (0) | 2014.03.05 |
[C#/SILVERLIGHT] BounceEase 엘리먼트 사용하기 (0) | 2014.03.05 |
[C#/SILVERLIGHT] EasingDoubleKeyFrame 엘리먼트 사용하기 (0) | 2014.03.05 |
[C#/SILVERLIGHT] EasingFunctionBase 클래스 : 커스텀 Easing 함수 정의하기 (0) | 2014.03.05 |
[C#/SILVERLIGHT] Storyboard 엘리먼트 : 애니메이션 제어하기 (0) | 2014.03.05 |
댓글을 달아 주세요