■ URI를 참조해 디스크 또는 네트워크에 저장된 이미지 파일을 읽어서 비트맵 이미지를 구하는 방법을 보여준다. ▶ 예제 코드 (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
|
using System; using System.Windows; using System.Windows.Media.Imaging; #region 비트맵 이미지 구하기 - GetBitmapImage(uri) /// <summary> /// 비트맵 이미지 구하기 /// </summary> /// <param name="uri">URI</param> /// <returns>비트맵 이미지</returns> public BitmapImage GetBitmapImage(Uri uri) { BitmapImage bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.UriSource = uri; bitmapImage.EndInit(); return bitmapImage; } #endregion |
■ DispatcherTimer 클래스의 Tick 이벤트를 사용해 미디어 플레이어의 재생 위치를 Slider 객체의 Value 속성에 설정하는 방법을 보여준다. ▶ 예제 코드 (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
|
using System.Windows.Controls; using System.Windows.Media; using System.Windows.Threading; private Slider slider; private MediaPlayer mediaPlayer; ... private DispatcherTimer dispatcherTimer = new DispatcherTimer(); ... this.DispatcherTimer.Interval = TimeSpan.FromSeconds(1); this.DispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); this.DispatcherTimer.Start(); ... #region 디스패처 타이머 틱 발생시 처리하기 - dispatcherTimer_Tick(sender, e) /// <summary> /// 디스패처 타이머 틱 발생시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private static void dispatcherTimer_Tick(object sender, EventArgs e) { this.slider.Value = this.mediaPlayer.Position.TotalSeconds; } #endregion |
■ Slider 클래스의 ValueChanged 이벤트를 사용해 MediaPlayer 객체의 Position 속성을 설정하는 방법을 보여준다. ▶ 예제 코드 (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
|
using System.Windows; using System.Windows.Media; using System.Windows.Controls; ... /// <summary> /// 미디어 플레이어 /// </summary> private MediaPlayer mediaPlayer; /// <summary> /// 슬라이더 /// </summary> private Slider slider; ... this.slider.Maximum = this.mediaPlayer.NaturalDuration.TimeSpan.TotalSeconds; this.slider.IsEnabled = true; this.slider.ValueChanged += new RoutedPropertyChangedEventHandler<double>(slider_ValueChanged); ... #region 슬라이더 값 변경시 처리하기 - slider_ValueChanged(sender, e) /// <summary> /// 슬라이더 값 변경시 처리하기 /// </summary> /// <param name="sender">이벤트 발생자</param> /// <param name="e">이벤트 인자</param> private void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { this.mediaPlayer.Position = TimeSpan.FromSeconds(this.slider.Value); } #endregion |
■ MediaPlayer 클래스를 사용해 컴퓨터나 네트워크에 저장되어 있는 음악 파일을 재생하거나 일시 정지하거나 중단하는 방법을 보여준다. ▶ MediaPlayer 객체 생성하기 (C#)
|
using System.Windows.Media; MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.Open(uri); |
더 읽기
■ 피타고라스 법칙을 사용해 두 Point 객체 사이의 거리를 계산하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
using System; using System.Windows; #region 거리 구하기 - GetDistance(startPoint, endPoint) /// <summary> /// 거리 계산하기 /// </summary> /// <param name="startPoint">시작 위치</param> /// <param name="endPoint">종료 위치</param> /// <returns>거리</returns> public double GetDistance(Point startPoint, Point endPoint) { double deltaX = startPoint.X - endPoint.X; double deltaY = startPoint.Y - endPoint.Y; return Math.Sqrt((Math.Pow(Math.Abs(deltaX), 2) + Math.Pow(Math.Abs(deltaY), 2))); } #endregion |