Ungkap Fokus
Reveal Focus adalah efek pencahayaan untuk pengalaman 10 kaki, seperti konsol game di layar televisi. Ini menganimasikan batas elemen yang dapat difokuskan, seperti tombol, ketika pengguna memindahkan gamepad atau fokus keyboard kepada mereka. Ini dinonaktifkan secara default, tetapi mudah diaktifkan.
API Penting: Properti Application.FocusVisualKind, enum FocusVisualKind, properti Control.UseSystemFocusVisuals
Cara kerjanya
Ungkapkan Fokus menarik perhatian pada elemen yang difokuskan dengan menambahkan cahaya animasi di sekitar batas elemen:
Ini sangat membantu dalam skenario 10 kaki di mana pengguna mungkin tidak memperhatikan sepenuhnya seluruh layar TV.
Contoh
Galeri WinUI 2 | |
---|---|
Jika Anda telah menginstal aplikasi Galeri WinUI 2, klik di sini untuk membuka aplikasi dan lihat Mengungkapkan Fokus dalam tindakan. |
Cara menggunakannya
Ungkapkan Fokus nonaktif secara default. Untuk mengaktifkannya:
- Di konstruktor aplikasi Anda, panggil properti AnalyticsInfo.VersionInfo.DeviceFamily dan periksa apakah keluarga perangkat saat ini adalah
Windows.Xbox
. - Jika keluarga perangkat adalah
Windows.Xbox
, atur properti Application.FocusVisualKind keFocusVisualKind.Reveal
.
if(AnalyticsInfo.VersionInfo.DeviceFamily == "Windows.Xbox")
{
this.FocusVisualKind = FocusVisualKind.Reveal;
}
Setelah Anda mengatur properti FocusVisualKind , sistem secara otomatis menerapkan efek Reveal Focus ke semua kontrol yang properti UseSystemFocusVisuals-nya diatur ke True (nilai default untuk sebagian besar kontrol).
Mengapa Tidak Mengungkapkan Fokus secara default?
Seperti yang Anda lihat, cukup mudah untuk mengaktifkan Reveal Focus saat aplikasi mendeteksinya berjalan di Xbox. Jadi, mengapa sistem tidak hanya menyalakannya untuk Anda? Karena Fokus Ungkap meningkatkan ukuran visual fokus, yang dapat menyebabkan masalah dengan tata letak UI Anda. Dalam beberapa kasus, Anda mungkin ingin menyesuaikan efek Ungkapkan Fokus untuk mengoptimalkannya untuk aplikasi Anda.
Menyesuaikan Fokus Ungkapan
Anda dapat menyesuaikan efek Ungkapkan Fokus dengan memodifikasi properti visual fokus untuk setiap kontrol: FocusVisualPrimaryThickness, FocusVisualSecondaryThickness, FocusVisualPrimaryBrush, dan FocusVisualSecondaryBrush. Properti ini memungkinkan Anda menyesuaikan warna dan ketebalan persegi panjang fokus. (Properti tersebut adalah properti yang sama dengan yang Anda gunakan untuk membuat Visual fokus Visibilitas Tinggi.)
Tetapi sebelum Anda mulai menyesuaikannya, sangat membantu untuk mengetahui sedikit lebih banyak tentang komponen yang membentuk Reveal Focus.
Ada tiga bagian ke visual Reveal Focus default: batas utama, batas sekunder, dan Tampilan bersinar. Batas utama tebal 2px , dan berjalan di luar perbatasan sekunder. Batas sekunder tebal 1px dan berjalan di sekitar bagian dalam perbatasan utama. Cahaya Fokus Ungkap memiliki ketebalan yang sebanding dengan ketebalan batas utama dan berjalan di luar batas utama.
Selain elemen statis, visual Reveal Focus menampilkan cahaya animasi yang bergelimpangan saat tidak aktif dan bergerak ke arah fokus saat memindahkan fokus.
Mengkustomisasi ketebalan batas
Untuk mengubah ketebalan tipe batas kontrol, gunakan properti ini:
Tipe batas | Properti |
---|---|
Primer, Bersinar | FocusVisualPrimaryThickness (Mengubah batas utama mengubah ketebalan cahaya secara proporsional.) |
Sekunder | FocusVisualSecondaryThickness |
Contoh ini mengubah ketebalan batas visual fokus tombol:
<Button FocusVisualPrimaryThickness="2" FocusVisualSecondaryThickness="1"/>
Mengkustomisasi margin
Margin adalah spasi antara batas visual kontrol dan awal visual fokus batas sekunder. Margin default adalah 1px jauh dari batas kontrol. Anda dapat mengedit margin ini per kontrol dengan mengubah properti FocusVisualMargin :
<Button FocusVisualPrimaryThickness="2" FocusVisualSecondaryThickness="1" FocusVisualMargin="-3"/>
Margin negatif mendorong batas menjauh dari pusat kontrol, dan margin positif memindahkan batas lebih dekat ke pusat kontrol.
Mengkustomisasi warna
Untuk mengubah warna visual Ungkapkan Fokus, gunakan properti FocusVisualPrimaryBrush dan FocusVisualSecondaryBrush .
Properti | Sumber daya default | Nilai sumber daya default |
---|---|---|
FocusVisualPrimaryBrush | SystemControlRevealFocusVisualBrush | SystemAccentColor |
FocusVisualSecondaryBrush | SystemControlFocusVisualSecondaryBrush | SystemAltMediumColor |
(Properti FocusPrimaryBrush hanya default ke Sumber daya SystemControlRevealFocusVisualBrush saat FocusVisualKind diatur ke Reveal. Jika tidak, ia menggunakan SystemControlFocusVisualPrimaryBrush.)
Untuk mengubah warna visual fokus kontrol individual, atur properti langsung pada kontrol. Contoh ini mengambil alih warna visual fokus tombol.
<!-- Specifying a color directly -->
<Button
FocusVisualPrimaryBrush="DarkRed"
FocusVisualSecondaryBrush="Pink"/>
<!-- Using theme resources -->
<Button
FocusVisualPrimaryBrush="{ThemeResource SystemBaseHighColor}"
FocusVisualSecondaryBrush="{ThemeResource SystemAccentColor}"/>
Untuk mengubah warna semua visual fokus di seluruh aplikasi Anda, ganti sumber daya SystemControlRevealFocusVisualBrush dan SystemControlFocusVisualSecondaryBrush dengan definisi Anda sendiri:
<!-- App.xaml -->
<Application.Resources>
<!-- Override Reveal Focus default resources. -->
<SolidColorBrush x:Key="SystemControlRevealFocusVisualBrush" Color="{ThemeResource SystemBaseHighColor}"/>
<SolidColorBrush x:Key="SystemControlFocusVisualSecondaryBrush" Color="{ThemeResource SystemAccentColor}"/>
</Application.Resources>
Untuk informasi selengkapnya tentang memodifikasi warna visual fokus, lihat Branding Warna & Penyesuaian.
Perlihatkan cahaya saja
Jika Anda hanya ingin menggunakan cahaya tanpa visual fokus utama atau sekunder, cukup atur properti FocusVisualPrimaryBrush kontrol ke Transparent
dan FocusVisualSecondaryThickness ke 0
. Dalam hal ini, cahaya akan mengadopsi warna latar belakang kontrol untuk memberikan nuansa tanpa batas. Anda dapat memodifikasi ketebalan cahaya menggunakan FocusVisualPrimaryThickness.
<!-- Show just the glow -->
<Button
FocusVisualPrimaryBrush="Transparent"
FocusVisualSecondaryThickness="0" />
Menggunakan visual fokus Anda sendiri
Cara lain untuk menyesuaikan Reveal Focus adalah dengan memilih keluar dari visual fokus yang disediakan sistem dengan menggambar sendiri menggunakan status visual. Untuk mempelajari selengkapnya, lihat sampel Visual fokus.
Mengungkapkan Fokus dan Sistem Fluent Design
Reveal Focus adalah komponen Sistem Fluent Design yang menambahkan cahaya ke aplikasi Anda. Untuk mempelajari selengkapnya tentang sistem Desain Fasih dan komponen lainnya, lihat gambaran umum Desain Fasih.
Artikel terkait
Windows developer