Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
SDK Aplikasi Windows adalah evolusi berikutnya dalam platform pengembangan Windows app. Tetapi topik ini menunjukkan bagaimana Anda dapat menggunakan API SDK Aplikasi Windows (dan API Windows Runtime) di aplikasi Formulir Windows (WinForms)!
- Dalam banyak kasus, Anda harus membuat ulang aplikasi WinForms dalam bentuk aplikasi WinUI 3 . Salah satu keuntungan dari pindah ke WinUI adalah memiliki access ke Fluent Design System (juga lihat Design dan kode aplikasi Windows). Dan WinUI adalah bagian dari SDK Aplikasi Windows—jadi, secara alami, aplikasi WinUI juga dapat menggunakan fitur dan API SDK Aplikasi Windows lainnya. Topik ini tidak mencakup proses migrasi aplikasi WinForms Anda ke WinUI.
- Tetapi jika Anda menemukan bahwa Anda menggunakan fitur WinForms yang belum tersedia di WinUI, maka Anda masih dapat menggunakan fitur SDK Aplikasi Windows (seperti Siklus Hidup Aplikasi, MRT Core, DWriteCore, dan lainnya) di aplikasi WinForms Anda. Topik ini menunjukkan caranya.
Dan jika Anda belum memiliki winForms project yang ada—atau Anda ingin mempraktikkan prosesnya—topik ini mencakup langkah-langkah untuk membuat WinForms project sehingga Anda dapat mengikuti dan mengonfigurasinya untuk memanggil API SDK Aplikasi Windows.
Prasyarat
- Pasang peralatan untuk SDK Aplikasi Windows.
- Topik ini mencakup aplikasi WinForms yang tidak dikemas dan dikemas. Jika aplikasi WinForms Anda tidak dikemas (yang merupakan default untuk aplikasi WinForms), pastikan bahwa semua dependensi untuk aplikasi yang tidak dikemas diinstal (lihat panduan penyebaran SDK Aplikasi Windows untuk aplikasi yang bergantung pada framework dengan lokasi eksternal atau yang tidak dikemas). Cara cepat untuk melakukan hal itu adalah dengan mengunjungi Unduhan Terbaru untuk SDK Aplikasi Windows, kemudian mengunduh, mengekstrak, dan menjalankan salah satu unduhan Runtime versi stabil.
Penting
Versi Runtime yang Anda instal harus sesuai dengan versi paket NuGet Microsoft.WindowsAppSDK yang akan Anda instal di langkah selanjutnya.
Untuk informasi selengkapnya tentang istilah yang tidak dikemas dan dikemas, lihat Keuntungan dan kekurangan pengemasan aplikasi Anda.
Membuat winforms project jika Anda belum memilikinya
Jika Anda sudah memiliki WinForms project, maka Anda dapat melanjutkan ke bagian berikutnya.
- Di Visual Studio, buat proyek Aplikasi Formulir Windows C# baru (yang merupakan proyek .NET). Berhati-hatilah agar Anda memilih templat proyek dengan nama persis Formulir Windows App, dan bukan Formulir Windows App (.NET Framework).
- Beri nama project, dan terima opsi default apa pun.
Anda sekarang memiliki proyek yang mengembangkan aplikasi WinForms yang tidak terpaketkan.
Mengonfigurasi project WinForms Anda untuk dukungan SDK Aplikasi Windows
Pertama, kita akan mengedit file project.
Di Penjelajah Solusi, klik kanan project Anda, dan pilih Edit File Project.
Langkah ini memungkinkan Anda memanggil API Windows Runtime (WinRT) (termasuk API SDK Aplikasi Windows). Di dalam elemen PropertyGroup adalah elemen TargetFramework, yang diatur ke nilai seperti net6.0. Tambahkan sebuah moniker ke nilai kerangka kerja sasaran itu (khususnya, Moniker Kerangka Kerja Sasaran). Misalnya, gunakan hal berikut jika aplikasi Anda menargetkan Windows 10, versi 2004:
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>Juga di dalam elemen PropertyGroup, tambahkan elemen RuntimeIdentifiers, seperti ini:
<RuntimeIdentifiers>win-x86;win-x64;win-arm64</RuntimeIdentifiers>Secara default, aplikasi WinForms tidak dikemas (artinya tidak diinstal dengan menggunakan MSIX). Aplikasi yang tidak dikemas harus menginisialisasi runtime SDK Aplikasi Windows sebelum menggunakan fitur lain dari SDK Aplikasi Windows. Anda dapat melakukannya secara otomatis saat aplikasi dimulai melalui inisialisasi otomatis. Anda cukup mengatur (juga di dalam elemen PropertyGroup) properti project
WindowsPackageTypedengan tepat, seperti ini:<WindowsPackageType>None</WindowsPackageType>Jika Anda memiliki kebutuhan lanjutan (seperti penanganan kesalahan kustom, atau untuk memuat versi SDK Aplikasi Windows tertentu), maka alih-alih auto-initialization Anda dapat memanggil API bootstrapper secara eksplisit—untuk informasi selengkapnya, lihat Gunakan runtime SDK Aplikasi Windows untuk aplikasi yang dikemas dengan lokasi eksternal atau dibongkar.
Simpan dan tutup file project.
Selanjutnya, kita akan menginstal paket NuGet SDK Aplikasi Windows di project.
- Di Penjelajah Solusi, klik kanan simpul Dependensi project project Anda, dan pilih Kelola Paket Nuget... .
- Di jendela NuGet Package Manager, pilih tab Browse, dan instal paket Latest stabilMicrosoft.WindowsAppSDK.
Gunakan beberapa fitur SDK Aplikasi Windows di aplikasi WinForms Anda
Bagian ini menawarkan contoh yang sangat sederhana untuk memanggil API SDK Aplikasi Windows dari aplikasi WinForms. Ini menggunakan fitur MRT Core (lihat Mengelola sumber daya dengan MRT Core). Jika contoh ini berfungsi untuk proyek WinForms Anda (dan jika Anda membuat yang baru untuk panduan ini, maka itu akan berfungsi), maka Anda dapat mengikuti langkah-langkah ini.
Buka
Form1.cs(menggunakan perintah View Designer), dan seret Tombol dan Label keluar dari Toolbox ke area desain.Klik dua kali tombol1 untuk menghasilkan penanganan aktivitas.
Sekarang kita akan menambahkan beberapa kode yang menggunakan kelas ResourceManager di SDK Aplikasi Windows untuk memuat sumber daya string.
Tambahkan item Resources File (.resw) baru ke project Anda (biarkan dengan nama default Resources.resw).
Dengan file sumber daya terbuka di editor, buat sumber daya string baru dengan properti berikut.
- Nama: Pesan
- Nilai: Halo, sumber daya!
Simpan dan tutup file sumber daya.
Buka
Form1.cs(menggunakan perintah Tampilkan Kode ), dan edit penanganan aktivitas agar terlihat seperti ini:
private void button1_Click(object sender, EventArgs e) { // Construct a resource manager using the resource index generated during build. var manager = new Microsoft.Windows.ApplicationModel.Resources.ResourceManager(); // Look up a string in the resources file using the string's name. label1.Text = manager.MainResourceMap.GetValue("Resources/Message").ValueAsString; }Buat project, dan jalankan aplikasi. Klik tombol untuk melihat string
Hello, resources!yang ditampilkan.
Petunjuk / Saran
Jika pada runtime Anda melihat kotak pesan yang menunjukkan bahwa aplikasi memerlukan versi Windows App Runtime tertentu, dan menanyakan apakah Anda ingin menginstalnya sekarang, lalu klik Yes. Itu akan membawa Anda ke Unduhan terbaru untuk SDK Aplikasi Windows. Untuk informasi selengkapnya, lihat bagian Prasyarat di atas.
Lihat juga arsitektur Runtime untuk mempelajari selengkapnya tentang Framework dependensi paket yang dibutuhkan aplikasi Anda saat menggunakan SDK Aplikasi Windows, dan komponen tambahan yang diperlukan untuk bekerja di aplikasi yang tidak dikemas.
Mengemas dan menyebarkan aplikasi WinForms Anda dengan MSIX
Beberapa fitur Windows dan API mengharuskan aplikasi Anda memiliki identitas paket saat runtime (dengan kata lain, aplikasi Anda harus paket). Untuk informasi selengkapnya, lihat Fitur yang memerlukan identitas paket. Kemasan MSIX juga diperlukan untuk pengiriman berbasis MSIX ke Microsoft Store.
- Di Penjelajah Solusi di Visual Studio, klik kanan solusi, dan pilih Tambahkan>Baru Project... .
- Dalam kotak dialog Tambahkan proyek baru, cari packaging, pilih templat proyek C# Proyek Pengemasan Aplikasi Windows, dan klik Berikutnya.
- Beri nama project, dan klik Buat.
- Kami ingin menentukan aplikasi mana dalam solusi yang akan disertakan dalam paket. Jadi dalam proyek pengemasan (tidak proyek WinForms), klik kanan pada simpul Dependensi, dan pilih Tambahkan Referensi Proyek... .
- Dalam daftar proyek dalam solusi, pilih WinForms project Anda, dan klik OK.
- Perluas Dependensi node dalam proyek kemasan>Applications, dan konfirmasikan bahwa proyek WinForms Anda direferensikan dan disorot dalam huruf tebal. Ini berarti bahwa itu akan digunakan sebagai titik awal untuk paket.
- Klik kanan project kemasan, dan pilih Set As Startup Project.
- Klik kanan project WinForms, dan pilih Edit File Project.
- Hapus
<WindowsPackageType>None</WindowsPackageType>, simpan, dan tutup. - Di menu drop-down Platform Solusi, pilih x64 (bukan Apa Pun CPU).
- Konfirmasikan bahwa Anda dapat membuat dan menjalankan.
Setelah mengemas aplikasi WinForms, Anda dapat memanggil API yang memerlukan identitas paket. Jadi buka Form1.cs (menggunakan perintah Tampilkan Kode ), dan edit penanganan aktivitas agar terlihat seperti ini:
private void button1_Click(object sender, EventArgs e)
{
var notification = new AppNotificationBuilder()
.AddArgument("action", "viewConversation")
.AddArgument("conversationId", "9813")
.AddText("Andrew sent you a picture")
.AddText("Check this out, The Enchantments in Washington!")
.BuildNotification();
AppNotificationManager.Default.Show(notification);
}
Kompilasi dan jalankan lagi. Klik tombol, dan konfirmasikan bahwa notifikasi toast muncul.
Catatan
Langkah-langkah di bagian ini menunjukkan kepada Anda cara membuat aplikasi paket. Alternatifnya adalah membuat aplikasi paket dengan lokasi eksternal. Untuk pengingat semua istilah ini, lihat Keuntungan dan kerugian pengemasan aplikasi Anda.
Topik terkait
- Formulir Windows (WinForms)
- Instal perangkat untuk SDK Aplikasi Windows
- Panduan penempatan SDK Aplikasi Windows untuk aplikasi yang bergantung pada kerangka yang dikemas di lokasi eksternal atau tidak dikemas
- Unduhan terbaru untuk SDK Aplikasi Windows
- Keuntungan dan kekurangan kemasan aplikasi Anda
- Gunakan runtime SDK Aplikasi Windows untuk aplikasi yang dikemas dengan lokasi eksternal atau tidak dikemas
- Arsitektur waktu proses
- Fitur yang memerlukan identitas paket
Windows developer