728x90
반응형
728x170
■ VisualBrush 엘리먼트의 Visual 속성에서 MediaElement 객체를 설정해 비디오로 영역을 칠하는 방법을 보여준다.
▶ 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="TestProject"
FontFamily="나눔고딕코딩"
FontSize="16">
<Window.Resources>
<Style x:Key="AnimatedRectangleStyleKey">
<Setter Property="Rectangle.Fill">
<Setter.Value>
<ImageBrush
TileMode="FlipXY"
Opacity="0.25"
ImageSource="IMAGE\purpleblock.jpg">
<ImageBrush.Transform>
<RotateTransform Angle="0" />
</ImageBrush.Transform>
</ImageBrush>
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard SpeedRatio="1.25">
<RectAnimation
Storyboard.TargetProperty="(Rectangle.Fill).(ImageBrush.Viewport)"
Duration="00:00:20"
To="0 0 0.5 0.5"
RepeatBehavior="Forever"
AutoReverse="True" />
<DoubleAnimation
Storyboard.TargetProperty="(Rectangle.Fill).(ImageBrush.Transform).(RotateTransform.Angle)"
Duration="00:01:00"
To="360"
RepeatBehavior="Forever"
AccelerationRatio="0.5"
DecelerationRatio="0.5" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid>
<Rectangle
Style="{StaticResource AnimatedRectangleStyleKey}"
Margin="10" />
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="Verdna"
FontSize="150"
Text="Some Text"
FontWeight="Bold">
<TextBlock.Foreground>
<VisualBrush>
<VisualBrush.Visual>
<MediaElement Name="mediaElement"
Source="VIDEO\xbox.wmv"
IsMuted="True" />
</VisualBrush.Visual>
</VisualBrush>
</TextBlock.Foreground>
</TextBlock>
</Grid>
</Window>
▶ MainWindow.xaml.cs
using System;
using System.Windows;
namespace TestProject
{
/// <summary>
/// 메인 윈도우
/// </summary>
public partial class MainWindow : Window
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainWindow()
/// <summary>
/// 생성자
/// </summary>
public MainWindow()
{
InitializeComponent();
this.mediaElement.MediaEnded += mediaElement_MediaEnded;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 미디어 엘리먼트 미디어 종료시 처리하기 - mediaElement_MediaEnded(sender, e)
/// <summary>
/// 미디어 엘리먼트 미디어 종료시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void mediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
this.mediaElement.Position = TimeSpan.Zero;
this.mediaElement.Play();
}
#endregion
}
}
728x90
반응형
그리드형(광고전용)
'C# > WPF' 카테고리의 다른 글
[C#/WPF] ImageBrush 엘리먼트 : Transform/RelativeTransform 속성을 사용해 이미지 브러시 만들기 (0) | 2023.03.24 |
---|---|
[C#/WPF] DrawingBrush 엘리먼트 : AlignmentX/AlignmentY 속성을 사용해 드로잉 브러시 만들기 (0) | 2023.03.24 |
[C#/WPF] ImageBrush 클래스 : Stretch 속성을 사용해 이미지 종횡비를 유지하는 이미지 브러시 만들기 (0) | 2023.03.24 |
[C#/WPF] VisualBrush 엘리먼트 : 반사 효과 만들기 (0) | 2023.03.23 |
[C#/WPF] VisualBrush 엘리먼트 : 돋보기 만들기 (0) | 2023.03.23 |
[C#/WPF] ImageBrush 클래스 : Viewport/TileMode 속성을 사용해 이미지 브러시 만들기 (0) | 2023.03.22 |
[C#/WPF] ImageBrush 클래스 : ImageSource 속성을 사용해 이미지 브러시 만들기 (0) | 2023.03.22 |
[C#/WPF] DrawingBrush 엘리먼트 : Viewport/TileMode 속성을 사용해 드로잉 브러시 만들기 (0) | 2023.03.22 |
[C#/WPF] DrawingBrush 엘리먼트 : Drawing 속성을 사용해 드로잉 브러시 만들기 (0) | 2023.03.22 |
[C#/WPF] DrawingImage 클래스 : Drawing 속성을 사용해 드로잉 이미지 만들기 (0) | 2023.03.22 |
댓글을 달아 주세요