728x90
SMALL
- WPF 프로젝트 만들기
- Visual Studio를 열고 새 프로젝트를 만들고, 템플릿에서 WPF 앱을 선택합니다.
- UI 디자인
- 디자인 탭에서 UI 디자인을 시작합니다.
- Label, ProgressBar, Button 등의 UI 컨트롤을 추가하여 다운로드 상태 및 진행률을 표시합니다.
- 다운로드 기능 추가
- WebClient 클래스를 사용하여 파일을 다운로드할 수 있습니다.
- 다운로드 버튼 클릭 시 이벤트를 추가하여 WebClient.DownloadFileAsync() 메서드를 호출합니다.
- 다운로드 진행률에 대한 이벤트 핸들러를 추가하여 ProgressBar의 값을 업데이트합니다.
- 다운로드 중인 파일 취소 기능 추가 (선택 사항)
- WebClient 객체의 CancelAsync() 메서드를 호출하여 다운로드를 중지할 수 있습니다.
- 취소 버튼을 추가하고 이벤트 핸들러를 만듭니다.
- 코드 정리 및 디버깅
- 코드를 정리하고 필요한 예외 처리를 추가합니다.
- 디버깅을 위해 코드를 실행하고 테스트합니다.
using System;
using System.ComponentModel;
using System.Net;
using System.Windows;
using System.Windows.Controls;
namespace WpfDownloader
{
public partial class MainWindow : Window
{
private WebClient client;
public MainWindow()
{
InitializeComponent();
}
private void btnDownload_Click(object sender, RoutedEventArgs e)
{
client = new WebClient();
client.DownloadFileAsync(new Uri(txtUrl.Text), "downloadedFile");
// Progress event handler
client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
}
private void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar.Value = e.ProgressPercentage;
}
private void btnCancel_Click(object sender, RoutedEventArgs e)
{
client.CancelAsync();
}
}
}
WebClient 객체를 사용하여 다운로드를 수행하며, DownloadProgressChanged 이벤트 핸들러를 사용하여 ProgressBar를 업데이트합니다. 또한 취소 버튼을 추가하여 WebClient 객체의 CancelAsync() 메서드를 호출하여 다운로드를 취소할 수 있습니다.
xaml은 다음과 같습니다.
<Window x:Class="WpfDownloader.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WPF Downloader" Height="150" Width="350">
<Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Content="File URL:"/>
<TextBox Grid.Row="1" x:Name="txtUrl" Margin="0,5,0,10" />
<Button Grid.Row="2" x:Name="btnDownload" Content="Download" Click="btnDownload_Click" />
<Button Grid.Row="2" x:Name="btnCancel" Content="Cancel" Click="btnCancel_Click" Margin="10,0,0,0" />
<ProgressBar Grid.Row="3" x:Name="progressBar" Margin="0,10,0,0"/>
</Grid>
</Window>
Window를 만들고 Grid를 사용하여 다운로드 UI를 배치합니다. Label, TextBox, Button, ProgressBar 등의 컨트롤을 추가하여 UI를 디자인합니다. 버튼 컨트롤에는 클릭 이벤트 핸들러가 추가되어 있습니다. 또한 취소 버튼도 추가하였습니다. 위의 C# 코드 예제와 함께 사용하면 WPF 다운로더를 구현할 수 있습니다.
728x90
LIST
'개발' 카테고리의 다른 글
[C언어] string 함수들 (예제포함) (0) | 2023.06.06 |
---|---|
[C#, WPF] 계산기 만들기 (0) | 2023.06.05 |
[C#, WPF] 그리드 만들기 (0) | 2023.06.03 |
[C#] 문자열과 숫자 형변환 방법 (0) | 2023.06.02 |
[C#] Chart 사용법 (0) | 2023.06.01 |