Application.RequestedTheme Properti

Definisi

Mendapatkan atau menetapkan nilai yang menentukan preferensi gelap terang untuk tema keseluruhan aplikasi.

public:
 property ApplicationTheme RequestedTheme { ApplicationTheme get(); void set(ApplicationTheme value); };
ApplicationTheme RequestedTheme();

void RequestedTheme(ApplicationTheme value);
public ApplicationTheme RequestedTheme { get; set; }
var applicationTheme = application.requestedTheme;
application.requestedTheme = applicationTheme;
Public Property RequestedTheme As ApplicationTheme
<application RequestedTheme="applicationThemeMemberName" .../>

Nilai Properti

Nilai enumerasi. Nilai awal adalah tema default yang ditetapkan oleh pengguna di pengaturan Windows.

Contoh

Contoh ini menunjukkan cara menyimpan tema yang diminta di pengaturan aplikasi lokal, lalu mengambil dan menerapkannya saat aplikasi dimulai ulang.

<ToggleSwitch Header="Theme" OnContent="Light" OffContent="Dark"
              Toggled="ToggleSwitch_Toggled" Loaded="ToggleSwitch_Loaded"/>
private void ToggleSwitch_Toggled(object sender, RoutedEventArgs e)
{
    // Save theme choice to LocalSettings. 
    // ApplicationTheme enum values: 0 = Light, 1 = Dark
    ApplicationData.Current.LocalSettings.Values["themeSetting"] =
                                                     ((ToggleSwitch)sender).IsOn ? 0 : 1;
}

private void ToggleSwitch_Loaded(object sender, RoutedEventArgs e)
{
    ((ToggleSwitch)sender).IsOn = App.Current.RequestedTheme == ApplicationTheme.Light;
}

App.xaml.cs

public App()
{
    this.InitializeComponent();

    // Get theme choice from LocalSettings.
    object value = ApplicationData.Current.LocalSettings.Values["themeSetting"];

    if (value != null)
    {
        // Apply theme choice.
        App.Current.RequestedTheme = (ApplicationTheme)(int)value;
    }
}

Keterangan

Ada dua tema bawaan: "Terang" dan "Gelap". Secara default aplikasi Anda berjalan menggunakan tema yang diatur oleh pengguna di pengaturan Windows (Pengaturan > Personalisasi > Warna > Pilih mode aplikasi default Anda). Anda dapat mengatur properti RequestedTheme aplikasi untuk mengambil alih default pengguna dan menentukan tema mana yang digunakan.

Tema hanya dapat diatur saat aplikasi dimulai, bukan saat sedang berjalan. Mencoba mengatur RequestedTheme saat aplikasi berjalan melempar pengecualian (NotSupportedException untuk kode Microsoft .NET). Jika Anda memberi pengguna opsi untuk memilih tema yang merupakan bagian dari UI aplikasi, Anda harus menyimpan pengaturan dalam data aplikasi dan menerapkannya saat aplikasi dimulai ulang. (Untuk informasi selengkapnya tentang pengaturan aplikasi, lihat Menyimpan dan mengambil pengaturan dan data aplikasi lainnya).

Anda dapat mengubah nilai tema tertentu pada run-time setelah Application.RequestedTheme diterapkan, jika Anda menggunakan properti FrameworkElement.RequestedTheme dan mengatur nilai pada elemen tertentu di UI.

Ada juga tema "HighContrast" yang menggunakan nilai sistem, tetapi aplikasi dan kode aplikasi menggunakan teknik yang berbeda untuk mengalihkan aplikasi ke kontras tinggi. Properti RequestedTheme diabaikan jika pengguna berjalan dalam mode kontras tinggi. Lihat Tema kontras tinggi dan sampel gaya kontras tinggi XAML.

Meskipun aplikasi tidak dapat mengalihkan tema pada run-time, pengguna dapat (dimulai dengan Windows 8.1). Misalnya, pengguna mungkin mengaktifkan tema kontras tinggi saat aplikasi Anda berjalan, dengan menggunakan pintasan kunci Alt+Shift+PrtScn. Jika ini terjadi, sistem sumber daya XAML akan menghitung ulang nilai sumber daya untuk penggunaan ekstensi markup {ThemeResource} apa pun. Sumber daya yang sesuai tema seperti warna dan kuas kemudian menggunakan nilai yang sesuai untuk tema saat ini, meskipun bukan aplikasi yang meminta tema tersebut pada awalnya.

Sumber daya yang spesifik tema biasanya didefinisikan dalam kamus sumber daya terpisah di XAML. Kamus sumber daya ini berasal dari properti ThemeDictionaries dari ResourceDictionary utama yang digunakan untuk templat kontrol. Kamus sumber daya sistem default untuk sumber daya khusus tema diberi nama ThemeResources.xaml. File ini tersedia di folder (Program Files)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP<SDK version>\Generic dari penginstalan Windows Software Development Kit (SDK).

Catatan untuk versi sebelumnya

Windows 8.x Secara default aplikasi Anda berjalan menggunakan tema "Gelap" (dalam file themeresources.xaml, nama kunci untuk sumber daya "Gelap" adalah "Default").

  • Di Windows, mengatur RequestedTheme ke ElementTheme.Default akan selalu mengakibatkan "Gelap" menjadi tema.
  • Pada Windows Phone, menggunakan nilai ElementTheme.Default akan menghasilkan kueri untuk tema sistem, seperti yang ditetapkan oleh pengguna.

Berlaku untuk

Lihat juga