Bagikan melalui


XamlLight Kelas

Definisi

Menyediakan kelas dasar yang digunakan untuk membuat lampu XAML yang menggunakan CompositionLight untuk menerapkan efek pencahayaan pada elemen dan kuas XAML.

/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class XamlLight : DependencyObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class XamlLight : DependencyObject
Public Class XamlLight
Inherits DependencyObject
Warisan
Object IInspectable DependencyObject XamlLight
Atribut

Contoh

Lihat contoh kode di Pencahayaan.

Keterangan

Anda dapat menggunakan XamlLight untuk membuat lampu kustom.

Misalnya, ini dapat digunakan untuk membuat cahaya yang menerapkan komposisi SpotLight untuk menargetkan elemen untuk menyalakannya.

XamlLight menyediakan metode untuk menargetkan UIElements atau XAML Brush, menerapkan lampu ke pohon UIElements, dan membantu mengelola masa pakai sumber daya CompositionLight berdasarkan apakah saat ini sedang digunakan.

XamlLights kustom dapat digunakan bersama dengan Kuas kustom yang berasal dari XamlCompositionBrushBase yang menggunakan SceneLightingEffect untuk mengontrol sifat reflektif elemen saat dinyalakan oleh XamlLight.

Menargetkan objek

Jika Anda menargetkan Kuas dengan XamlLight maka bagian UIElements apa pun menggunakan Brush tersebut akan dinyalakan oleh cahaya.

Jika Anda menargetkan UIElement dengan XamlLight maka seluruh UIElement dan UIElements anaknya semuanya akan dinyalakan oleh cahaya.

Target dapat ditambahkan dan dihapus dengan memanggil metode pada instans XamlLight. XamlLights juga dapat menentukan properti terlampir kustom untuk menambahkan dan menghapus target dari markup.

Pengelolaan sumber daya

Saat membuat XamlLight, biasanya merupakan praktik yang baik untuk menunda pembuatan CompositionLight dan sumber daya terkait sampai cahaya digunakan. Metode OnConnected dipanggil ketika XamlLight pertama kali digunakan untuk menargetkan elemen atau kuas di layar, sehingga Anda dapat mengambil alih OnConnected untuk membuat sumber daya dengan aman hanya ketika diperlukan.

Ini juga merupakan praktik yang baik untuk membuang sumber daya komposisi ketika tidak lagi digunakan. Metode OnDisconnected dipanggil ketika instans XamlLight tidak lagi digunakan di mana saja di layar, sehingga Anda dapat mengambil alih OnDisconnected untuk membuang sumber daya dengan aman. Jika XamlLight nanti digunakan lagi setelah terputus maka OnConnected akan dipanggil lagi.

Peringatan

Pada Windows 10 Creators Update (SDK 15063), CompositionLight tidak dapat diakses setelah Buang dipanggil, jadi mengaturnya ke null setelah memanggil Buang menyebabkan kesalahan. Untuk mengatasi masalah ini, Anda dapat menyimpan CompositionLight ke variabel sementara dan memanggil Buang setelah Anda mengatur CompositionLight ke null. var temp = CompositionLight; CompositionLight = null; temp.Dispose(); Masalah ini diperbaiki di versi SDK yang lebih baru. Lihat Aplikasi adaptif versi untuk informasi tentang cara menargetkan versi SDK yang berbeda.

Konstruktor

XamlLight()

Menginisialisasi instans baru kelas XamlLight .

Properti

CompositionLight

Mendapatkan atau mengatur instans CompositionLight yang digunakan untuk menerapkan efek pencahayaan.

Dispatcher

Selalu kembali null di aplikasi SDK Aplikasi Windows. Gunakan DispatcherQueue sebagai gantinya .

(Diperoleh dari DependencyObject)
DispatcherQueue

DispatcherQueue Mendapatkan yang dikaitkan dengan objek ini. DispatcherQueue mewakili fasilitas yang dapat mengakses DependencyObject pada utas UI bahkan jika kode dimulai oleh utas non-UI.

(Diperoleh dari DependencyObject)

Metode

AddTargetBrush(String, Brush)

Menetapkan Brush sebagai target XamlLight.

AddTargetElement(String, UIElement)

Menetapkan UIElement sebagai target XamlLight.

ClearValue(DependencyProperty)

Menghapus nilai lokal properti dependensi.

(Diperoleh dari DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Mengembalikan nilai dasar apa pun yang ditetapkan untuk properti dependensi, yang akan berlaku dalam kasus di mana animasi tidak aktif.

(Diperoleh dari DependencyObject)
GetId()

Mengembalikan pengidentifikasi untuk jenis XamlLight kustom.

Dalam kebanyakan kasus, Anda harus menggunakan pengidentifikasi unik untuk mencegah konflik. Misalnya, Anda dapat menggunakan FullName dari jenis XamlLight kustom Anda.

Pengidentifikasi digunakan untuk menambahkan dan menghapus Brush dan UIElements sebagai target untuk jenis cahaya tertentu.

GetValue(DependencyProperty)

Mengembalikan nilai efektif properti dependensi saat ini dari DependencyObject.

(Diperoleh dari DependencyObject)
OnConnected(UIElement)

Metode ini secara otomatis dipanggil ketika XamlLight pertama kali digunakan di layar, atau setelah sebelumnya terputus kemudian digunakan lagi.

Ini memberikan kesempatan untuk membuat sumber daya seperti CompositionLight hanya jika diperlukan.

OnDisconnected akan dipanggil ketika XamlLight tidak lagi digunakan untuk menyalakan UIElements atau Brush apa pun.

OnDisconnected(UIElement)

Metode ini secara otomatis dipanggil ketika XamlLight tidak lagi digunakan di mana saja di layar.

Ini memberikan kesempatan untuk membuang sumber daya dengan aman seperti CompositionLight ketika saat ini tidak diperlukan.

OnConnected akan dipanggil lagi jika XamlLight nantinya digunakan untuk menyalakan UIElements atau Brush setelah terputus.

ReadLocalValue(DependencyProperty)

Mengembalikan nilai lokal properti dependensi, jika nilai lokal ditetapkan.

(Diperoleh dari DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Mendaftarkan fungsi pemberitahuan untuk mendengarkan perubahan pada DependencyProperty tertentu pada instans DependencyObject ini.

(Diperoleh dari DependencyObject)
RemoveTargetBrush(String, Brush)

Menghentikan Brush menjadi target XamlLight.

RemoveTargetElement(String, UIElement)

Menghentikan UIElement menjadi target XamlLight.

SetValue(DependencyProperty, Object)

Mengatur nilai lokal properti dependensi pada DependencyObject.

(Diperoleh dari DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Membatalkan pemberitahuan perubahan yang sebelumnya terdaftar dengan memanggil RegisterPropertyChangedCallback.

(Diperoleh dari DependencyObject)

Berlaku untuk

Lihat juga