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.
Materials di Windows 11 adalah efek visual yang diterapkan pada permukaan antarmuka pengguna yang menyerupai artefak kehidupan nyata. Bahan yang menutupi, seperti Mika dan Akrilik, digunakan sebagai lapisan dasar di bawah kontrol UI interaktif.
Mica adalah bahan buram yang menggabungkan tema pengguna dan wallpaper desktop untuk menciptakan penampilan yang sangat dipersonalisasi. Mica dirancang untuk performa karena hanya menangkap wallpaper latar belakang sekali untuk membuat visualisasinya, jadi kami merekomendasikannya untuk lapisan fondasi aplikasi Anda, terutama di area bilah judul.
Akrilik adalah bahan semi transparan yang mereplikasi efek kaca beku. Ini hanya digunakan untuk permukaan sementara yang mematikan cahaya seperti flyout dan menu konteks.
Artikel ini menjelaskan cara menerapkan Mica atau Acrylic sebagai lapisan dasar aplikasi XAML Windows App SDK/WinUI 3 Anda.
Nota
- Untuk menggunakan materi backdrop di aplikasi Win32, lihat Terapkan Mica pada aplikasi desktop Win32 di Windows 11.
- Untuk akrilik dalam aplikasi yang diterapkan ke elemen UI (bukan latar belakang jendela), lihat Akrilik dalam aplikasi.
Cara menggunakan bahan backdrop
![]()
Aplikasi Galeri WinUI 3 mencakup contoh interaktif kontrol dan fitur WinUI. Dapatkan aplikasi dari Microsoft Store atau telusuri kode sumber pada GitHub.
Untuk menerapkan material Mica atau Acrylic pada aplikasi Anda, atur properti SystemBackdrop ke XAML SystemBackdrop (biasanya, salah satu latar belakang bawaan, seperti MicaBackdrop atau DesktopAcrylicBackdrop).
Elemen-elemen ini memiliki SystemBackdrop properti:
- CommandBarFlyoutCommandBar.Latar Belakang Sistem
- ContentIsland.SystemBackdrop
- DesktopWindowXamlSource.SystemBackdrop
- FlyoutBase.SystemBackdrop
- MenuFlyoutPresenter.SystemBackdrop (Fitur latar belakang sistem pada presenter menu)
- Latar Belakang Sistem Popup
- Window.SystemBackdrop
Contoh-contoh ini menunjukkan cara mengatur latar belakang sistem di XAML.
Mica
Mica biasanya digunakan sebagai latar untuk jendela aplikasi.
<Window
... >
<Window.SystemBackdrop>
<MicaBackdrop/>
</Window.SystemBackdrop>
</Window>
Mica Alt
Untuk menggunakan varian Mica Alt, atur properti Kind ke BaseAlt.
<Window
... >
<Window.SystemBackdrop>
<MicaBackdrop Kind="BaseAlt"/>
</Window.SystemBackdrop>
</Window>
Acrylic
Akrilik Desktop dapat digunakan sebagai latar belakang untuk Jendela.
<Window
... >
<Window.SystemBackdrop>
<DesktopAcrylicBackdrop/>
</Window.SystemBackdrop>
</Window>
Akrilik dalam Antarmuka Pengguna Sementara
Akrilik juga umumnya digunakan sebagai latar belakang untuk UI sementara, seperti flyout. Anda dapat mengatur ini di XAML atau dalam kode, karena flyout sering dibuat secara dinamis.
<Flyout
... >
<Flyout.SystemBackdrop>
<DesktopAcrylicBackdrop/>
</Flyout.SystemBackdrop>
</Flyout>
Flyout flyout = new Flyout()
{
SystemBackdrop = new DesktopAcrylicBackdrop()
};
Tingkat Lanjut: Cara menggunakan pengontrol latar belakang sistem
Nota
Dimulai dengan Windows App SDK 1.3, Anda dapat menerapkan materi dengan mengatur properti Window.SystemBackdrop ke XAML SystemBackdrop seperti yang dijelaskan di bagian sebelumnya. Ini adalah cara yang disarankan untuk menerapkan materi untuk sebagian besar aplikasi.
Sisa artikel ini menunjukkan cara menggunakan API MicaController dan DesktopAcrylicController, yang memberi pengguna lebih banyak kontrol atas perilaku latar belakang.
Untuk menggunakan materi backdrop di aplikasi, Anda dapat menggunakan salah satu pengontrol yang mengimplementasikan antarmuka ISystemBackdropController (MicaController atau DesktopAcrylicController). Kelas-kelas ini mengelola pemrosesan materi latar belakang sistem serta penanganan kebijakan sistem untuk materi tersebut.
Untuk menggunakan Mica sebagai bahan backdrop Anda, buat objek MicaController . Untuk menggunakan Acrylic, buat objek DesktopAcrylicController . Pengaturan dan kode pendukung adalah sama untuk setiap jenis material latar belakang sistem.
Membuat MicaController
MicaController micaController;
bool TrySetMicaBackdrop(bool useMicaAlt)
{
if (MicaController.IsSupported())
{
...
micaController = new MicaController();
micaController.Kind = useMicaAlt ? MicaKind.BaseAlt : MicaKind.Base;
...
}
}
Membuat sebuah DesktopAcrylicController
DesktopAcrylicController acrylicController;
bool TrySetAcrylicBackdrop(bool useAcrylicThin)
{
if (DesktopAcrylicController.IsSupported())
{
...
acrylicController = new DesktopAcrylicController();
acrylicController.Kind = useAcrylicThin
? DesktopAcrylicKind.Thin : DesktopAcrylicKind.Base;
...
}
}
Pengontrol bereaksi terhadap tema Terang dan Gelap sistem secara default. Untuk mengambil alih perilaku ini, Anda dapat mengatur properti berikut pada pengontrol:
Nota
Setelah menyesuaikan salah satu dari empat properti pengontrol, properti tersebut tidak lagi menerapkan nilai Terang atau Gelap default saat SystemBackdropConfiguration.Theme terkait berubah. Anda perlu memperbarui properti tersebut secara manual agar sesuai dengan tema baru.
Untuk menggunakan materi backdrop di aplikasi Anda, item berikut diperlukan:
Dukungan sistem
Sistem yang digunakan aplikasi harus mendukung material latar belakang. Panggil metode MicaController.IsSupported atau DesktopAcrylicController.IsSupported untuk memastikan materi backdrop didukung saat runtime.
Target yang valid
Anda harus menyediakan target yang mengimplementasikan antarmuka ICompositionSupportsSystemBackdrop . Dalam aplikasi XAML, Jendela XAML mengimplementasikan antarmuka ini dan digunakan sebagai target backdrop.
Objek SystemBackdropConfiguration
SystemBackdropConfiguration menyediakan kontroler backdrop sistem dengan informasi kebijakan spesifik aplikasi guna mengonfigurasi bahan backdrop sistem secara tepat.
Objek DispatcherQueue
Anda memerlukan Windows.System.DispatcherQueue yang tersedia pada utas XAML utama. Hubungi
DispatcherQueue.EnsureSystemDispatcherQueue()untuk memastikan keberadaannya.
Contoh: Menggunakan Mica dengan pengontrol di aplikasi WinUI
Contoh ini menunjukkan cara menyiapkan materi backdrop Mica menggunakan pengontrol di aplikasi XAML.
Tip
Selain itu, lihat contoh proyek ini di GitHub:
C#: SampleSystemBackdropsWindow di Galeri WinUI.
C++/WinRT: Windows App SDK sampel Mica.
using Microsoft.UI.Composition;
using Microsoft.UI.Composition.SystemBackdrops;
using Microsoft.UI.Xaml;
using WinRT; // required to support Window.As<ICompositionSupportsSystemBackdrop>()
public sealed partial class MainWindow : Window
{
MicaController micaController;
SystemBackdropConfiguration configurationSource;
public MainWindow()
{
this.InitializeComponent();
TrySetMicaBackdrop(false);
}
bool TrySetMicaBackdrop(bool useMicaAlt)
{
if (MicaController.IsSupported())
{
DispatcherQueue.EnsureSystemDispatcherQueue();
// Hooking up the policy object.
configurationSource = new SystemBackdropConfiguration();
Activated += Window_Activated;
Closed += Window_Closed;
((FrameworkElement)Content).ActualThemeChanged += Window_ThemeChanged;
// Initial configuration state.
configurationSource.IsInputActive = true;
SetConfigurationSourceTheme();
micaController = new MicaController
{
Kind = useMicaAlt ? MicaKind.BaseAlt : MicaKind.Base
};
// Enable the system backdrop.
// Note: Be sure to have "using WinRT;" to support the Window.As<...>() call.
micaController.AddSystemBackdropTarget(
this.As<ICompositionSupportsSystemBackdrop>());
micaController.SetSystemBackdropConfiguration(configurationSource);
return true; // Succeeded.
}
return false; // Mica is not supported on this system.
}
private void Window_Activated(object sender, WindowActivatedEventArgs args)
{
if (configurationSource != null)
configurationSource.IsInputActive =
args.WindowActivationState != WindowActivationState.Deactivated;
}
private void Window_Closed(object sender, WindowEventArgs args)
{
// Make sure any Mica/Acrylic controller is disposed
// so it doesn't try to use this closed window.
micaController?.Dispose();
micaController = null;
Activated -= Window_Activated;
configurationSource = null;
}
private void Window_ThemeChanged(FrameworkElement sender, object args)
{
if (configurationSource != null)
SetConfigurationSourceTheme();
}
private void SetConfigurationSourceTheme()
{
if (configurationSource != null)
configurationSource.Theme =
(SystemBackdropTheme)((FrameworkElement)Content).ActualTheme;
}
}
Artikel terkait
Windows developer