- WPF ialah rangka kerja UI .NET untuk Windows: Vektor, dipercepatkan GPU dan berasaskan XAML.
- Dua pelaksanaan: .NET (sumber terbuka) dan .NET Framework 4; kedua-duanya adalah Windows sahaja.
- mengikat, arahan, gaya dan templat membolehkan UI berorientasikan MVVM yang kaya, boleh diselenggara.
- Grafik 2D/3D, animasi, tipografi, multimedia dan kebolehoperasian Win32/WinForms.

Windows Presentation Foundation (WPF) ialah rangka kerja antara muka pengguna .NET untuk membina aplikasi desktop Windows moden, boleh diskala dan dipercepatkan perkakasan . Ia direka bentuk untuk memanfaatkan Direct3D dan GPU semasa, menawarkan enjin pemaparan berasaskan vektor, reka bentuk responsif, animasi dan pemisahan yang jelas antara antara muka dan logik hasil daripada XAML dan kod asasnya.
Selain kuasa visualnya, WPF mengintegrasikan model data, gaya dan templat, arahan, sokongan teks lanjutan dan keserasian yang mantap dengan multimedia, 2D/3D dan tipografi berkualiti tinggi. Semua ini dilengkapi dengan alat matang dalam Visual Studio dan Blend, ekosistem kawalan pihak ketiga dan keupayaan untuk berinteraksi dengan teknologi sedia ada seperti Windows Forms dan Win32.
Apakah itu WPF dan pelaksanaannya
WPF ialah rangka kerja persembahan bebas resolusi yang memaparkan antara mukanya menggunakan saluran grafik vektor dan merupakan bahagian penting dalam .NET. Pendekatan bebas peranti ini membolehkan antara muka yang jelas dan boleh diskala merentasi tetapan DPI yang berbeza , memudahkan kebolehcapaian dan kualiti visual pada mana-mana monitor.
Terdapat dua pelaksanaan utama: versi .NET (sumber terbuka dan dihoskan di GitHub) dan versi .NET Framework 4 yang disertakan dengan Windows. Edisi .NET berjalan secara eksklusif pada Windows , walaupun .NET adalah platform silang, dan pereka XAMLnya memerlukan sekurang-kurangnya Visual Studio 2019 16.8 (atau versi yang lebih baharu bergantung pada versi .NET). Edisi berasaskan .NET Framework 4 disokong oleh Visual Studio 2017 dan 2019 dan diedarkan sebagai komponen sistem pengendalian itu sendiri.
Migrasi aplikasi daripada .NET Framework kepada .NET menawarkan faedah yang jelas: prestasi yang lebih baik, API baharu, penambahbaikan bahasa terkini, kebolehcapaian dan kebolehpercayaan yang lebih baik , serta perkakasan yang dikemas kini. Jika anda mengekalkan asas aplikasi .NET Framework sedia ada, naik taraf tersebut akan membuahkan hasil dari segi produktiviti dan penyelenggaraan dalam jangka masa sederhana, terutamanya dalam senario perniagaan (LOB).
Dari segi sejarah, WPF telah disertakan sejak Windows Vista dan juga tersedia untuk Windows XP SP2 dan Windows Server 2003, menjadikan dirinya sebagai lapisan UI rujukan untuk desktop dalam ekosistem .NET. Pada peringkat keluarga teknologi, Silverlight merupakan subset WPF yang ditujukan kepada aplikasi web dan mudah alih yang kaya, mewarisi model XAML, walaupun tanpa sokongan 3D dan dengan skop yang lebih kecil berbanding WPF.
Pemaparan WPF adalah berdasarkan Direct3D, yang membolehkan grafik kompleks, tema yang konsisten dan kerja pemindahan ke GPU untuk mengurangkan beban CPU. Penekanan pada vektor ini menghalang pikselasi semasa penskalaan dan memudahkan pengalaman yang lancar apabila perkakasan mengizinkan.

XAML, kod belakang, dan model pengaturcaraan
Dalam WPF, antara muka diekspresikan menggunakan XAML (bahasa markup berasaskan XML), dan tingkah laku dilaksanakan dengan kod terurus (C# atau VB.NET) dalam kelas di sebalik kod. Pengasingan tanggungjawab ini mengurangkan kos pembangunan dan penyelenggaraan serta membolehkan pereka dan pembangun bekerja secara selari tanpa pertindihan.
Model pengaturcaraan berada dalam ruang nama System.Windows dan bergantung pada konsep yang biasa (penyampaian kelas, sifat, kaedah dan peristiwa) dan dua tonggak unik: sifat kebergantungan dan peristiwa yang dihalakan. Sifat kebergantungan membolehkan pengikatan data, gaya, animasi dan pewarisan nilai; peristiwa yang dihalakan boleh bergerak melalui pokok visual, memudahkan pengurusan interaksi yang kompleks.
Pokok elemen yang dijana oleh XAML mentakrifkan hierarki komponen yang jelas, dan semasa masa jalan, rangka kerja tersebut menukar elemen dan atribut kepada contoh kelas WPF sebenar. Contohnya, elemen Tetingkap dengan atribut Tajuk diwujudkan sebagai contoh kelas Tetingkap dengan set sifat Tajuknya.
Pautan antara XAML dan kod asas diisytiharkan dengan `x:Class`, dan kaedah `InitializeComponent`, yang dijana pada masa kompilasi, mengikat UI kepada kelas dan mendaftarkan pengendali peristiwa. Apabila kawalan mengisytiharkan pengendali dalam XAML, sistem menghubungkan peristiwa (seperti Klik Butang) kepada kaedah yang sepadan dalam kelas separa.
WPF juga menyokong corak seni bina seperti MVVM hasil daripada sistem pengikatan data, arahan dan DataContext. Ini menggalakkan pengujian unit, penggunaan semula paparan dan pemisahan yang ketat antara logik paparan dan pembentangan.

Input, arahan, kawalan dan susun atur
Sistem input WPF menggabungkan peristiwa langsung dan dihalakan untuk teks, fokus dan penunjuk , serta menambah sistem arahan yang memisahkan tindakan daripada gerak isyarat pengguna. Oleh itu, arahan yang sama (Salin, Potong, Tampal) boleh dipanggil daripada pintasan papan kekunci , menu atau butang tanpa menduplikasi logik.
Dalam WPF, kawalan ialah sebarang elemen UI yang dihoskan dalam tetingkap atau halaman dengan tingkah laku yang ditetapkan; rangka kerja tersebut merangkumi pelbagai kawalan sedia untuk digunakan. Ini mempercepatkan penciptaan aplikasi kaya tanpa perlu membina komponen dari awal.
Mengikut fungsi, kawalan terbina dalam merangkumi kategori seperti butang, paparan data, navigasi, menu, pilihan, input dan banyak lagi. Berikut ialah contoh kelas dalam setiap kumpulan:
- Butang: Butang, Butang Ulang.
- Paparan data: DataGrid, ListView, TreeView.
- Tarikh: Kalendar, DatePicker.
- Kotak dialog: OpenFileDialog, SaveFileDialog, PrintDialog.
- Dakwat digital: InkCanvas, InkPresenter.
- Dokumen: DocumentViewer, FlowDocumentReader, FlowDocumentScrollViewer, FlowDocumentPageViewer, StickyNoteControl.
- Input teks: TextBox, RichTextBox, PasswordBox.
- Reka bentuk: Border, Canvas, DockPanel, Grid, GridSplitter, GridView, Panel, StackPanel, WrapPanel, ScrollViewer, ScrollBar, Viewbox, VirtualizingStackPanel, Window, Thumb, GroupBox, Expander, Separator, ResizeGrip, BulletDecorator.
- Media: Imej, MediaElement, SoundPlayerAction.
- Menu dan bar: Menu, ContextMenu, ToolBar, StatusBar, ProgressBar.
- Navigasi: Bingkai, Halaman, NavigationWindow, Hiperpautan, TabControl.
- Pemilihan: Kotak Semak, RadioButton, ComboBox, ListBox, Slider.
- Maklumat pengguna: Label, TextBlock, Petua Alat, Pop Timbul, AccessText.
Sistem susun atur adalah asas: ia mengagihkan kawalan mengikut saiz dan kedudukan secara relatif, merundingkan ruang antara kawalan utama dan sekunder untuk menyesuaikan diri dengan perubahan dalam saiz tetingkap dan skrin. Ini mengelakkan logik khusus resolusi dan membolehkan UI responsif.
Panel susun atur merangkumi corak yang paling biasa: Kanvas (kedudukan mutlak), DockPanel (pengikatan ke tepi), Grid (baris dan lajur), StackPanel (penimbunan mendatar atau menegak), VirtualizingStackPanel (penimbunan maya) dan WrapPanel (pemisahan baris). Contohnya, DockPanel membolehkan anda meletakkan kawalan ke tepi, dengan kawalan yang tinggal mengisi ruang yang tersedia dengan mudah.

Memautkan data, templat dan sumber
Pengikatan data memudahkan penyegerakan antara objek dan UI, menghapuskan keperluan untuk menyalin nilai secara manual dan memudahkan penyebaran perubahan. Kelas Binding menghubungkan sumber dan destinasi, manakala DataContext membenarkan kawalan mencari sifat tanpa pendawaian eksplisit.
Pautan diisytiharkan menggunakan ungkapan dalam XAML, dan WPF menawarkan pengesahan, pengisihan, penapisan dan pengelompokan pada koleksi; ia juga menyokong templat data untuk menentukan paparan setiap item. Terima kasih kepada seni bina ini, senarai kompleks boleh dipaparkan dengan pembentangan tersuai tanpa menjejaskan prestasi.
WPF menyokong mod pengikatan yang berbeza: tunggal, searah (baca) dan dwiarah (baca dan tulis). Dalam aplikasi perniagaan, menggabungkan mod ini dalam senarai dan borang adalah amalan biasa untuk memudahkan penyuntingan dan paparan.
Selain objek dan koleksi .NET, pertanyaan LINQ (termasuk LINQ ke XML) boleh digunakan dengan mudah sebagai sumber data. Enjin tidak menguatkuasakan persembahan; ini ditentukan oleh templat data, yang boleh disesuaikan untuk setiap jenis objek terikat.
Gaya membolehkan anda menyeragamkan penampilan: Gaya memberikan sifat kepada jenis atau contoh tertentu, memusatkan warna, fon dan margin untuk keseluruhan aplikasi. Sistem Sumber memudahkan perkongsian gaya dan berus ini antara kawalan dan tetingkap.
Model kandungan mentakrifkan apa yang boleh dimiliki oleh kawalan dengan Kandungan: kawalan mudah seperti TextBox atau kawalan kompleks yang mengandungi pokok elemen, seperti Butang dengan susun atur dalaman atau imej. Fleksibiliti ini memudahkan untuk membina antara muka kompleks tanpa mencipta kawalan baharu dari awal.
Terima kasih kepada templat, rupa visual kawalan boleh diubah tanpa mengubah tingkah lakunya: ControlTemplate membolehkan anda mengubah suai rupa kawalan dan DataTemplate menetapkan cara data dipaparkan dalam senarai dan grid.

Grafik, animasi, teks dan penyesuaian lanjutan
- Sistem grafik WPF menawarkan kebebasan peranti, ketepatan koordinat dan sokongan untuk ruang warna yang luas. Ini menghasilkan antara muka yang jelas, transformasi yang tepat dan pembiakan warna yang berkualiti tinggi.
- Dalam 2D, ia termasuk bentuk vektor siap sedia, geometri untuk mencipta angka tersuai dan palet berus yang luas untuk kecerunan, imej, lukisan dan tekstur, serta menyokong transformasi seperti berputar, menskala atau menyerong. Bentuk ini mengambil bahagian dalam input, menerima fokus dan disepadukan ke dalam model visual.
- Dalam 3D, anda boleh menyepadukan pemandangan dengan jerat, bahan dan kamera; anda malah boleh menayangkan kandungan 2D pada permukaan 3D untuk pengalaman mengasyikkan dan kawalan interaktif di angkasa. Walaupun terhad berbanding Direct3D penuh, sokongan 3D dalam WPF digabungkan dengan baik dengan UI, dokumen dan multimedia.
- Enjin animasi bersifat sementara dan dipisahkan daripada bingkai, membolehkan anda menganimasikan sebarang sifat kebergantungan dengan kelas seperti DoubleAnimation atau ColorAnimation, diurus dengan Papan Cerita. Ia boleh dicetuskan oleh peristiwa atau pencetus dalam XAML, memudahkan animasi kompleks dengan sedikit kod.
- WPF menyokong imej dan video secara asli: format seperti BMP, JPEG, PNG, TIFF, GIF, ikon dan Windows Media Photo, serta WMV, MPEG dan AVI, menggunakan codec yang dipasang pada sistem.
- Dari segi tipografi dan teks, ia menampilkan sokongan OpenType dan penambahbaikan ClearType, dengan pemaparan dipercepatkan perkakasan, disepadukan dengan grafik dan animasi untuk pengalaman membaca yang berkualiti tinggi.
- Kesan visual telah dimodenkan: BitmapEffects ditamatkan dan sejak .NET 3.5 SP1, Effect membenarkan penapis dipercepatkan GPU seperti BlurEffect dan DropShadowEffect, serta kesan tersuai menggunakan shader.
- Mod yang dikekalkan membolehkan kawalan dipecahkan kepada pokok visual dan mengurus kemas kini dengan cekap, mengambil kesempatan daripada pecutan GPU. Pada perkakasan terhad, beberapa kelebihan berkurangan, tetapi platform masih berfungsi dengan baik.
- Saling beroperasi antara WPF dan teknologi lain adalah mudah: boleh menjadi tuan rumah kawalan WPF dalam aplikasi Win32 dan sebaliknya, memudahkan migrasi beransur-ansur dan penggunaan semula komponen.
- Strategi untuk kawalan tersuai termasuk UserControl, Control, dan FrameworkElement, bergantung pada tahap penyesuaian dan pemisahan gelagat dan penampilan. Pencetus membolehkan anda menukar gaya dan templat sebagai tindak balas kepada peristiwa tanpa mengubah suai gelagat asas, yang memperkayakan reka bentuk visual anda.
- Alat pembangunan telah bertambah baik: Visual Studio menawarkan pereka XAML, penyahpepijatan, pemprofilan prestasi, dengan sokongan dan pratonton IntelliSense yang mempercepatkan penciptaan dan penalaan UI yang kompleks.
- Ekosistem luaran termasuk kawalan lanjutan daripada vendor seperti Infragistics, Telerik dan DevExpress, serta sumber sumber terbuka dan projek seperti Avalonia UI yang memberi inspirasi kepada corak merentas platform.
- Untuk aplikasi pada Windows, WPF menggabungkan prestasi, reka bentuk moden dan seni bina yang fleksibel, menjadikannya pilihan yang kukuh berbanding dengan alternatif seperti Windows Forms, aplikasi web atau Java Swing.
Dengan semua perkara di atas, WPF diperkukuh sebagai platform yang berkuasa untuk membina aplikasi desktop dengan UI yang sangat boleh disesuaikan, model data yang mantap, grafik lanjutan dan sokongan multimedia. Menggunakan sumber seperti XAML, pengikatan data, gaya dan templat, anda boleh mencipta pengalaman yang konsisten, boleh diakses dan boleh diselenggara yang memanfaatkan pecutan perkakasan dan saling kendali dengan teknologi sedia ada.
Penulis yang bersemangat tentang dunia bait dan teknologi secara umum. Saya suka berkongsi pengetahuan saya melalui penulisan, dan itulah yang akan saya lakukan dalam blog ini, menunjukkan kepada anda semua perkara yang paling menarik tentang alat, perisian, perkakasan, trend teknologi dan banyak lagi. Matlamat saya adalah untuk membantu anda mengemudi dunia digital dengan cara yang mudah dan menghiburkan.

