Xây dựng ứng dụng desktop với WinForms/WPF trong C# – Phần 16
1. Giới thiệu về WinForms và WPF
Khi phát triển ứng dụng desktop trong C#, có hai công nghệ chính:
🔹 WinForms (Windows Forms): Giao diện đơn giản, dễ học, phù hợp với các ứng dụng nhỏ.
🔹 WPF (Windows Presentation Foundation): Giao diện hiện đại, hỗ trợ thiết kế UI nâng cao, phù hợp với các ứng dụng phức tạp.
2. Cài đặt WinForms và WPF
2.1. Cài đặt WinForms
👉 Tạo project WinForms:
dotnet new winforms -n MyWinFormsApp
cd MyWinFormsApp
dotnet run
📌 Lệnh này sẽ tạo và chạy ứng dụng WinForms cơ bản.
2.2. Cài đặt WPF
👉 Tạo project WPF:
dotnet new wpf -n MyWPFApp
cd MyWPFApp
dotnet run
📌 Ứng dụng WPF sẽ mở với cửa sổ giao diện mặc định.
3. Xây dựng ứng dụng với WinForms
3.1. Thiết kế giao diện
💡 Tạo form với nút bấm và label.
👉 Mở Form1.cs và sửa lại như sau:
using System;
using System.Windows.Forms;
public class MainForm : Form
{
private Label label;
private Button button;
public MainForm()
{
Text = "Ứng dụng WinForms";
Width = 300;
Height = 200;
label = new Label() { Text = "Chào bạn!", Top = 50, Left = 100 };
button = new Button() { Text = "Nhấn tôi", Top = 100, Left = 100 };
button.Click += (sender, e) => label.Text = "Bạn đã nhấn nút!";
Controls.Add(label);
Controls.Add(button);
}
[STAThread]
public static void Main()
{
Application.Run(new MainForm());
}
}
📌 Chạy chương trình, bạn sẽ thấy một giao diện đơn giản với nút bấm.
4. Xây dựng ứng dụng với WPF
4.1. Thiết kế giao diện XAML
👉 Mở MainWindow.xaml và thay đổi như sau:
<Window x:Class="MyWPFApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title="Ứng dụng WPF" Height="200" Width="300">
<Grid>
<Label Name="myLabel" Content="Chào bạn!" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0,50,0,0"/>
<Button Name="myButton" Content="Nhấn tôi" Width="100" Height="30"
HorizontalAlignment="Center" VerticalAlignment="Center" Click="Button_Click"/>
</Grid>
</Window>
4.2. Xử lý sự kiện trong C#
👉 Mở MainWindow.xaml.cs và thêm code xử lý sự kiện
using System.Windows;
namespace MyWPFApp
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
myLabel.Content = "Bạn đã nhấn nút!";
}
}
}
📌 Chạy ứng dụng WPF, nhấn vào nút và quan sát thay đổi trên giao diện.
5. So sánh WinForms và WPF
| Đặc điểm | WinForms | WPF |
|---|---|---|
| Giao diện | Đơn giản | Hiện đại, mạnh mẽ |
| Tốc độ phát triển | Nhanh | Mất thời gian hơn |
| Hiệu suất | Trung bình | Cao hơn |
| Hỗ trợ XAML | ❌ Không | ✅ Có |
| Khả năng mở rộng | Trung bình | Cao |
📌 WinForms phù hợp với ứng dụng nhỏ, WPF phù hợp với ứng dụng lớn và phức tạp.
6. Tổng Kết
✅ WinForms giúp tạo ứng dụng nhanh chóng.
✅ WPF mạnh mẽ hơn, hỗ trợ giao diện đẹp.
✅ C# hỗ trợ cả hai công nghệ tùy vào nhu cầu sử dụng.
💡 Bài tiếp theo:
👉 Làm việc với Entity Framework trong C# – Phần 17 🚀