Changement de Thème dans Windows 10 UWP Application par programmation
J'ai été capable de changer de thème à l'aide de this.RequestedTheme = ElementTheme.Dark;
Mais ce dont j'ai besoin est l'ensemble de l'application, car ce seul changement le thème de la page en cours à l'obscurité.
Chaque fois que j'essaie cette App.Current.RequestedTheme = ApplicationTheme.Dark;
J'ai toujours cette erreur
Une exception de type 'System.NotSupportedException' s'est produite dans UWPApp.exe mais n'a pas été traitée dans le code utilisateur
Est-il une telle façon que je peux changer l'ensemble de l'application du thème de la Lumière à l'Obscurité, ou vice versa?
Je suis en utilisant VS2015
- Le Template10 modèles ont construit dans cette. Vous pouvez les utiliser ou de glaner une solution à partir d'elle.
Vous devez vous connecter pour publier un commentaire.
Mise à jour de répondre avec ce que j'ai finalement décidé d'.
J'ai utilisé un des paramètres de la classe qui détient toutes les applications y compris les paramètres de ce thème à utiliser. Puisque le thème ne peut être réglé que lorsqu'il démarre, nous avons besoin de définir eux. C'est le code que j'ai utilisé:
Dans l'Application.xaml.cs fichier:
Dans l'Application.fichier xaml assurez-vous de supprimer cette propriété:
Si ce n'est pas retiré, il toujours défaut à la lumière avec aucun moyen de le changer.
De cette façon, l'utilisateur peut choisir le thème, il est stocké et utilisé au démarrage de l'application. Assurez-vous de charger et à l'appliquer dans l'app phase d'initialisation.
Application RequestedTheme ne peut être mis à jour dans le constructeur.Cependant (comme vous l'avez découvert) , de la Page RequestedTheme peut être mis à jour à tout moment lors de l'exécution.
C'est vraiment ennuyeux, je sais et il n'y a pas beaucoup d'informations à propos de cette situation autre que cette page MSDN :
https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.application.requestedtheme?f=255&MSPPError=-2147217396
Il devrait y avoir des solutions de contournement, mais ils vont être très bête.Microsoft à le faire dans leurs propres applications officielles comme Groove bien ...
Ma solution est de faire du thème de la mise à jour sur le niveau de l'Élément , et non le niveau de l'Application.
Je ne suis pas en mesure de fournir le code exemple en ce moment (depuis que je suis très occupé aujourd'hui) , mais c'est de loin le moyen le plus efficace à mon humble avis.
J'ai trouvé une autre solution qui a fonctionné assez bien pour moi. Si l'application dispose d'un cadre de root qui charge les pages (ce qui est le cas par défaut), j'ai pu définir le thème demandé de la racine de cadre à la valeur désirée et le thème de l'application a été modifié sans redémarrer. Le code ressemble à ceci:
J'ai eu ce morceau de code à partir du Modèle Windows Studio GitHub ici, donc cela semble être la meilleure façon de le faire.