Bagikan melalui


Gambaran Umum Efek Bitmap

Efek bitmap memungkinkan perancang dan pengembang menerapkan efek visual ke konten Windows Presentation Foundation (WPF) yang dirender. Misalnya, efek bitmap memungkinkan Anda untuk dengan mudah menerapkan efek DropShadowBitmapEffect atau efek kabur ke gambar atau tombol.

Penting

Di .NET Framework 4 atau yang lebih baru, kelas BitmapEffect usang. Jika Anda mencoba menggunakan kelas BitmapEffect, Anda akan mendapatkan pengecualian usang. Alternatif yang tidak usang untuk kelas BitmapEffect adalah kelas Effect. Dalam kebanyakan situasi, kelas Effect secara signifikan lebih cepat.

Efek Bitmap WPF

Efek bitmap (objekBitmapEffect) adalah operasi pemrosesan piksel sederhana. Efek bitmap mengambil BitmapSource sebagai input dan menghasilkan BitmapSource baru setelah menerapkan efek, seperti blur atau drop shadow. Setiap efek bitmap mengekspos properti yang dapat mengontrol properti pemfilteran, seperti RadiusBlurBitmapEffect.

Dalam kasus khusus dalam WPF, efek dapat ditetapkan sebagai properti pada objek Visual yang aktif, seperti Button atau TextBox. Pemrosesan piksel diterapkan dan dirender pada saat waktu jalan. Dalam hal ini, pada saat penyajian, Visual secara otomatis dikonversi ke BitmapSource setara dan disalurkan sebagai input ke BitmapEffect. Output menggantikan perilaku penyajian default objek Visual. Inilah sebabnya mengapa objek BitmapEffect memaksa visual untuk dirender hanya dalam perangkat lunak, yaitu tidak ada akselerasi perangkat keras pada visual ketika efek diterapkan.

Nota

Efek bitmap WPF dilakukan proses rendering dalam mode perangkat lunak. Objek apa pun yang menerapkan efek juga akan dirender dalam perangkat lunak. Performa menurun drastis saat menggunakan efek Bitmap pada visual besar atau menganimasi properti efek Bitmap. Ini bukan untuk mengatakan bahwa Anda tidak boleh menggunakan efek Bitmap dengan cara ini sama sekali, tetapi Anda harus berhati-hati dan menguji secara menyeluruh untuk memastikan bahwa pengguna Anda mendapatkan pengalaman yang Anda harapkan.

Nota

Efek bitmap WPF tidak mendukung eksekusi kepercayaan parsial. Aplikasi harus memiliki izin kepercayaan penuh untuk menggunakan efek bitmap.

Cara Menerapkan Efek

BitmapEffect adalah properti di Visual. Oleh karena itu menerapkan efek ke Visual, seperti Button, Image, DrawingVisual, atau UIElement, semudah mengatur properti. BitmapEffect dapat diatur ke objek BitmapEffect tunggal atau beberapa efek dapat ditautkan dengan menggunakan objek BitmapEffectGroup.

Contoh berikut menunjukkan cara menerapkan BitmapEffect dalam Extensible Application Markup Language (XAML).

<Button  Width="200">You Can't Read This!
  <Button.BitmapEffect>

  <!-- <BitmapEffectGroup> would go here if you wanted to apply more 
         then one effect to the Button. However, in this example only  
         one effect is being applied so BitmapEffectGroup does not need  
         to be included. -->

    <!-- The larger the Radius, the more blurring. The default range is 20.
         In addition, the KernelType is set to a box kernel. A box kernel
         creates less disruption (less blur) then the default Gaussian kernel. -->
    <BlurBitmapEffect Radius="10" KernelType="Box" />

  </Button.BitmapEffect>
</Button>

Contoh berikut menunjukkan cara menerapkan BitmapEffect dalam kode.

// Get a reference to the Button.
Button myButton = (Button)sender;

// Initialize a new BlurBitmapEffect that will be applied
// to the Button.
BlurBitmapEffect myBlurEffect = new BlurBitmapEffect();

// Set the Radius property of the blur. This determines how
// blurry the effect will be. The larger the radius, the more
// blurring.
myBlurEffect.Radius = 10;

// Set the KernelType property of the blur. A KernalType of "Box"
// creates less blur than the Gaussian kernal type.
myBlurEffect.KernelType = KernelType.Box;

// Apply the bitmap effect to the Button.
myButton.BitmapEffect = myBlurEffect;

Nota

Saat BitmapEffect diterapkan ke kontainer tata letak, seperti DockPanel atau Canvas, efek diterapkan ke pohon visual elemen atau visual, termasuk semua elemen turunannya.

Membuat Efek Kustom

WPF juga menyediakan antarmuka yang tidak dikelola untuk membuat efek kustom yang dapat digunakan dalam aplikasi WPF terkelola. Untuk materi referensi tambahan untuk membuat efek bitmap kustom, lihat dokumentasi Efek Bitmap WPF Tidak Terkelola.

Lihat juga