WPF antara Cinta dan Realita | Episode 6
Pada episode 4 seri Cinta dan Realita telah dikemukakan tentang Application Object Model. Pada teknologi WPF selain Application Object Model terdapat juga Programming Object Model. Bila Applications Object Model memfokuskan pada dukungan permodelan pustaka aplikasi WPF dari sisi antarmuka dan presentasi aplikasi, maka Programming Object Model lebih menekankan pada dukungan permodelan pustaka aplikasi WPF dari sisi pemograman aplikasi seperti penanganan events, akses resources, hingga pengikatan data. Seri Cinta dan Reailta kali ini akan membahas beberapa model yang diusung oleh Programming Object Model.
WPF Base Objects
Sebagian besar class pada WPF berasal dari turunan class dasar lainnya. Sebagai contoh pada base objects WPF, sebagian besar berasal dari class DependencyObject, apabila rekan hendak membuat object pemograman silahkan menurunkannya dari class tersebut. DepedencyObject class berisi berbagai cara untuk melakukan komputasi properties yang terkait dengan model pemograman WPF, plus didalamnya juga terdapat dukungan event notifikasi perubahan nilai yang mungkin terjadi pada object yang bersangkutan. Gambar 1 menjelaskan hirarkis DependencyObject terhadap class-class base object lainnya.
Gambar 1. Hirarkis DepedencyObject
Tabel Berikut menjelaskan fungsi setiap class-class base objects turunan DependencyObject
|
Nama Class |
Deskripsi |
|
Visual |
Sesuai dengan namanya, class ini terkait dengan semua tampilan visual pada control-kontrol WPF |
|
Freezable |
Class ini adalah class yang memfokuskan pada peningkatan performa aplikasi untuk tampilan grafis yang dibuat oleh brush atau pen. Intinya class ini memberikan notifikasi pada sistem untuk tidak merender bagian-bagian aplikasi yang bersifat frozen (tidak berubah) ataupun sebaliknya (unfrozen) |
|
UIElement |
Class ini mendukung untuk animasi, commands, event masukan, dan juga event-event antarmuka yang dimiliki oleh dependency objek |
|
ContentElement |
Class ini mendukung konsep isi (content) yang dimiliki sebuah aplikasi. Sebagai contoh penggunaan class ini adalah class-class reader yang merupakan class yang membutuhkan content |
|
FrameworkElement |
Memberikan dukungan layanan untuk animasi, story boards, pengikatan data. FrameworkElement adalah subclass dari UIElement |
|
FrameworkContentElement |
Memberikan layanan yang sama dengan FrameworkElement hanya saja, FrameworkContentElement merupakan subsclass dari ContentElement, dengan kata lain di dalamnya terdapat dukungan fungsi dari ContentElement |
WPF Events
Aplikasi merespon terhadap setiap aksi pengguna melalui suatu konsep yang dikenal dengan events. Pada aplikasi berbasis WPF, XAML dan Code Behind, saling terhubung melalui penamaan event yang memiliki signature sama, konsep ini dikenal dengan delegate. Sebagai contoh apabila rekan-mengklik tombol maka respond logika bisnis dieksekusi. Event bersifat one-to many artinya respon sebuah event dapat berpengaruh pada lebih dari satu control.
private void btnHitung_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Test");
}
WPF Resources
WPF resources mengemukakan tentang sekumpulan sumberdaya yang bersifat reusable, pada umumnya WPF Resources terbagi menjadi tiga kategori.
- Standard Resources, resources ini melekat pada element dengan ditandai x:key , sebuah kunci element yang unik untuk standard resources. Pada umumnya standard resource diletakkan pada sebuah root element sebagai contoh diletkkan di stackpanel atatupun grid, hal ini menjamin tujuan dari resources sendiri yakni "Resources"
- Application Resources, resources ini terletak pada aplikasi, lebih tepatnya diletakkan pada Applications Object Model (app.xaml)
- System Resources, resources ini terletak pada sistem dan sudah dimiliki oleh WPF, sebagai contoh resources systemcolor (pewarnaan) atau resources systemfont (font)
Kode Contoh
Kode contoh ini menunjukkan penggunaan events, resources, yang telah dikemas dalam satu solusi
Selamat belajar
Ciao | Ridi