2015-07-23 3 views
7

Ich versuche, die Statusleiste in meiner Windows 10 Universal App auszublenden. In WP 8.1 benutzte ich StatusBar.GetForCurrentView().HideAsync();, um die Statusleiste auszublenden, aber das wird nicht in meinem aktuellen Projekt funktionieren (Monogame, Win10 UAP) - Ich bekomme "StatusBar nicht im aktuellen Kontext gefunden" Fehler (ja, ich benutze Windows .UI.ViewManagement). Mache ich etwas falsch, oder wurde diese Option zum Entfernen von StatusBar entfernt? Wie soll ich das in W10M machen? Vielen Dank im Voraus.Windows 10 Mobile - Statusleiste kann nicht ausgeblendet werden (StatusBar existiert nicht im Kontext)

Antwort

20

Der Trick ist, dass Sie zuerst einen Verweis auf das Microsoft Mobile Extension SDK hinzufügen müssen. Dann ist der Code folgende:

StatusBar statusBar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView(); 
await statusBar.HideAsync(); 

Die Referenz kann von rechts hinzugefügt werden, um das Universal-Projekt klicken. Wählen Sie "Referenz hinzufügen". Wählen Sie im Reference Manager-Dialog "Windows Universal" auf der linken Seite. Wählen Sie "Erweiterungen" und überprüfen Sie das "Microsoft Mobile Extension SDK ...".

Select the Extension SDK in the Reference Manager

Da dies eine universelle App ist, wird es auf jedem Gerät laufen, aber die API finden Sie unter nur auf mobilen Geräten (auch bekannt als Phones) mit dem Windows 10. Daher funktions erkennen, ob diese API zur Verfügung Laufzeit, bevor Sie tatsächlich die API aufrufen. Andernfalls wird eine TypeLoadException zur Laufzeit ausgelöst.

Verwenden Sie den Windows.Foundation.Metadata.ApiInformation-Namespace, um herauszufinden, ob die API verfügbar ist. (ZB Methode IsTypePresent() Ich empfehle, mit typeof arbeiten statt Strings hier, zum Beispiel wie folgt aus:.

var isStatusBarPresent = ApiInformation.IsTypePresent(typeof(StatusBar).ToString()); 

Erfahren Sie mehr über adaptive Code hier: https://channel9.msdn.com/Series/A-Developers-Guide-to-Windows-10/08

+0

Arbeiten dank !. – kubci98

+0

Dies wird nicht Arbeitet zumindest mit der aktuellen Version von SDK, da nach .Net Native Kompilierung typeof (StatusBar) wird nicht den literalen Namen geben, wie Sie erwarten. –

+0

Würde "typeof (StatusBar) .FullName" eine bessere Lösung sein? – Richardissimo

Verwandte Themen