아래 예제는 동영상을 다운로드 하면서 진행상태를 보여주고 동영상을 재생을 재생을 합니다.
MediaElement, TextBlack, ProgressBar 컨트롤을 Xaml 코드뷰에서 추가해주거나 Blend에서 추가해줍니다. MediaElement는 다운로드한 동영상을 재생하고 TextBlack는 다운로드 되는 상태를 퍼센트로 보여줍니다.
Xaml
<UserControl x:Class="ControlTest17.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="290" Height="260">
<Grid x:Name="LayoutRoot" Background="White">
<ProgressBar Margin="32,0,105,31" x:Name="pgsLoad" Minimum="0"
VerticalAlignment="Bottom" Height="19"/>
<TextBlock Height="19" HorizontalAlignment="Right" Margin="0,0,-8,31"
VerticalAlignment="Bottom" Width="97" Text="TextBlock"
TextWrapping="Wrap" x:Name="tbResult"/>
<MediaElement Margin="30,20.5,25,66.5" x:Name="mediaElement" AutoPlay="True"/>
</Grid>
</UserControl>
C# Code
using System;
using System.Net;
using System.Windows.Controls;
namespace ControlTest17
{
public partial class Page : UserControl
{
public Page()
{
InitializeComponent();
WebClient webclient = new WebClient();
webclient.OpenReadAsync(new Uri("Silverlight.wmv",
UriKind.RelativeOrAbsolute));
webclient.DownloadProgressChanged += new
DownloadProgressChangedEventHandler(webclient_DownloadProgressChanged);
webclient.OpenReadCompleted +=
new OpenReadCompletedEventHandler(webclient_OpenReadCompleted);
}
void webclient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
try
{
mediaElement.SetSource(e.Result);
mediaElement.Play();
}
catch (Exception ex) {}
}
}
void webclient_DownloadProgressChanged(object sender,
DownloadProgressChangedEventArgs e)
{
pgsLoad.Value = e.ProgressPercentage;
tbResult.Text = e.ProgressPercentage.ToString() + "% Completed";
}
}
}
WebClient 클래스를 이용하여 웹에서 동영상 경로를 설정하고 DownloadProgressChanged 메소드는 다운로드 되고 있는 상태를 PregressBar, TextBlack에 다운로드 되고 있는 결과를 보여줍니다. ebclient_OpenReadCompleted 이벤트는 조건문을 통하여 다운로드 중 에러가 발생했는지 체크를 하고 에러가 없으면 결과값을 보여줍니다.
'.NET WPF' 카테고리의 다른 글
Silverlight Toolkit 2008년 12월 버전 릴리즈 (0) | 2008.12.10 |
---|---|
Silverlight Tools(RC1) 한국어버전 출시 (2) | 2008.11.25 |
Silverlight 2 Controls Review 강좌목록 (0) | 2008.10.27 |
Silverlight 2 Controls Review - TabControl (0) | 2008.10.25 |
Silverlight 2 워터마크 컨트롤 (WatorMarked Text Box Control) (2) | 2008.10.24 |
Silverlight 2 Controls Review - GridSplitter (0) | 2008.10.22 |
SilverlightContrib Controls 릴리즈 (0) | 2008.10.21 |
댓글