■ TranslateTransform 엘리먼트를 사용하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<Rectangle Width="100" Height="100" Fill="Blue"> <Rectangle.RenderTransform> <TranslateTransform X="20" Y="20" /> </Rectangle.RenderTransform> </Rectangle> |
■ VideoBrush 엘리먼트를 사용하는 방법을 보여준다. ▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<Grid> <MediaElement x:Name="mediaElement" Opacity="0" IsMuted="True" IsHitTestVisible="False" Source="sample.mp4" /> <Rectangle Width="400" Height="300"> <Rectangle.Fill> <VideoBrush SourceName="mediaElement" Stretch="UniformToFill" /> </Rectangle.Fill> </Rectangle> </Grid> |
■ Behavior<T> 클래스에서 투명도 Behavior를 구현하는 방법을 보여준다. ▶ Expression Blend 참조 추가 (XAML)
|
Microsoft.Expression.Interactions |
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
using System; using System.Windows; using System.Windows.Input; using System.Windows.Interactivity; namespace TestProject { /// <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 } } |
■ ChangePropertyAction 엘리먼트를 사용하는 방법을 보여준다. ▶ Expression Blend 참조 추가
|
Microsoft.Expression.Interactions Microsoft.Expression.Prototyping.Interactivity System.Windows.Interactivity |
▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<Button x:Name="button" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" Width="140" Height="100" Content="ChangeProperty"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <ei:ChangePropertyAction TargetName="rectangle" PropertyName="Width" Value="120" /> ... </i:EventTrigger> </i:Interaction.Triggers> </Button> |
■ ControlStoryboardAction 엘리먼트를 사용하는 방법을 보여준다. ▶ Expression Blend 참조 추가
|
Microsoft.Expression.Interactions Microsoft.Expression.Prototyping.Interactivity System.Windows.Interactivity |
▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
<Grid xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"> <Grid.Resources> <Storyboard x:Key="StoryboardKey"> <DoubleAnimation Storyboard.TargetName="rectangle" Storyboard.TargetProperty="Width" Duration="0:0:0.2" To="200" /> </Storyboard> </Grid.Resources> <Button Width="140" Height="100" Content="ControlStoryboard"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <ei:ControlStoryboardAction ControlStoryboardOption="Play" Storyboard="{StaticResource StoryboardKey}" /> </i:EventTrigger> </i:Interaction.Triggers> </Button> </Grid> |
■ Ellipse 엘리먼트를 사용하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<Ellipse Width="200" Height="200" StrokeThickness="10" Stroke="Black" Fill="Orange" /> |
■ MouseDragElementBehavior 엘리먼트를 사용하는 방법을 보여준다. ▶ Expression Blend 참조 추가
|
Microsoft.Expression.Interactions Microsoft.Expression.Prototyping.Interactivity System.Windows.Interactivity |
▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<Grid x:Name="grid" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" Width="600" Height="400" Background="Khaki"> <Rectangle Width="100" Height="100" Fill="Blue"> <i:Interaction.Behaviors> <ei:MouseDragElementBehavior ConstrainToParentBounds="True" X="0" Y="0" /> </i:Interaction.Behaviors> </Rectangle> </Grid> |
■ PlaySoundAction 엘리먼트를 사용하는 방법을 보여준다. ▶ Expression Blend 참조 추가
|
Microsoft.Expression.Interactions Microsoft.Expression.Prototyping.Interactivity System.Windows.Interactivity |
▶ 예제 코드 (XAML)
|
<Button xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" Width="140" Height="100" Content="PlaySoundAction"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <ei:PlaySoundAction Source="http://127.0.0.1/ibelive.mp3" Volume="1" /> </i:EventTrigger> </i:Interaction.Triggers> </Button> |
※ Volume 속성은 0에서 1
더 읽기
■ Polygon 엘리먼트를 사용하는 방법을 보여준다. ▶ 예제 코드 1 (XAML)
|
<Polygon Stroke="Orange" StrokeThickness="10" Fill="SkyBlue" Points="0 0, 50 0, 50 50" /> |
▶ 예제 코드 2 (XAML)
|
<Polygon StrokeThickness="2" Stroke="Purple" Points="300 200, 400 125, 400 275, 300 200"> <Polygon.Fill> <SolidColorBrush Color="Blue" Opacity="0.4" /> </Polygon.Fill> </Polygon> |
■ Polyline 엘리먼트를 사용하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<Polyline StrokeThickness="10" Stroke="Orange" Fill="SkyBlue" Points="0 0, 50 0, 50 50" /> |
■ Rectangle 엘리먼트를 사용하는 방법을 보여준다. ▶ 예제 코드 (XAML)
|
<Rectangle Width="200" Height="200" RadiusX="25" RadiusY="25" StrokeThickness="10" Stroke="Black" Fill="Orange" /> |
■ TriggerAction<T> 클래스를 사용해 투명도 Action을 구현하는 방법을 보여준다. ▶ Expression Blend 참조 추가
|
Microsoft.Expression.Interactions |
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
using System; using System.Windows; using System.Windows.Interactivity; namespace CustomActionApplication { /// <summary> /// 투명도 액션 /// </summary> public class OpacityAction : TriggerAction<UIElement> { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Protected #region 호출하기 - Invoke(parameter) /// <summary> /// 호출하기 /// </summary> /// <param name="parameter">매개 변수</param> protected override void Invoke(object parameter) { UIElement uiElement = AssociatedObject as UIElement; if(uiElement != null) { if(uiElement.Opacity == 0d) { uiElement.Opacity = 1d; } else { uiElement.Opacity = 0d; } } } #endregion } } |
■ EventTrigger 엘리먼트를 사용하는 방법을 보여준다. ▶ Expression Blend 참조 추가
|
Microsoft.Expression.Interactions System.Windows.Interactivity |
▶ 예제 코드 (XAML)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<Button x:Name="button" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" Width="100" Height="100" Content="Click Me"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <ei:ChangePropertyAction TargetName="button" PropertyName="Width" Value="200" /> </i:EventTrigger> </i:Interaction.Triggers> </Button> |
■ Expression Blend 4 Action을 사용하는 방법을 보여준다. • 'Expression Blend 4 참조 사용하기'를 참조한다. ▶ 프로젝트 참조에서 아래 참조를 추가한다
|
Microsoft.Expression.Interactions Microsoft.Expression.Prototyping.Interactivity System.Windows.Interactivity |
더 읽기
■ Silverlight Toolkit 어셈블리를 추가하는 방법을 보여준다. ▶ 프로젝트 참조에서 아래 참조를 추가한다.
|
System.Windows.Controls.Toolkit |
▶ XML 네임스페이스를 아래와 같이 추가한다 (XAML)
|
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit" |