Loupe

#Windows 8.1 : appeler des méthodes spécifiques à Windows 10 – rester/passer en FullScreen même sur Windows 10 ! #uwp

Windows 10 et le SDK pour les applications Windows Universal sont là depuis un petit moment maintenant est il parfois frustrant de ne pas pouvoir bénéficier des nouvelles API. Dans cet article, je vous montrerais un moyen de contournement en l’illustrant par le passage en plein-écran d’une application Windows 8.1

 

L’astuce est vieille comme le monde : utiliser la réflexion !

 

Je vais ici utiliser la même méthode “TryEnterFullScreenMode” d’une instance d’ApplicationView comme dans ce précédent article en la trouvant par réflexion. Si elle est trouvée, je l’appelle.

// Récupération de la vue courante qui porte la méthode recherchée
var view = ApplicationView.GetForCurrentView();

// Récupération de la méthode qui m'intéresse
var maMethodeCible = view.GetType().GetRuntimeMethods()
    .FirstOrDefault(m => m.Name == "TryEnterFullScreenMode");

// Si la méthode est trouvée (Windows 10 ou mieux donc)
if (maMethodeCible != null)
{
    // Je l'appelle
    maMethodeCible.Invoke(view, new object[0]);
}


 

Vous remarquerez que l’appel n’est fait que si la méthode est réellement trouvée. Il n’est pas recommandé de se baser sur le numéro de version de Windows pour ce genre de vérification.

 

Et en bonus (merci Michael pour l’idée) vous pouvez aussi assigner la valeur d’ouverture préférée par défaut(PreferredLaunchWindowingMode).

var targetProperty = view.GetType().GetRuntimeProperties()
.FirstOrDefault(m => m.Name == "PreferredLaunchWindowingMode");

targetProperty.SetMethod.Invoke(view, new[] { (object)2 });

 

La valeur 2 correspond à la valeur “FullScreen” de l’ApplicationViewWindowingMode disponible sur cette page : https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.viewmanagement.applicationviewwindowingmode.ASPx

Photo de profil

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus