2015-12-16 26 views
7

UWP'de durum çubuğunu gizlemek için aşağıdaki kodu kullandım. Uygulamayı bilgisayarımdaki geliştirme modunda çalıştırdığımda, Windows telefonunda durum çubuğu görüntülenmiyor. Uygulamayı indirdikten sonra uygulamayı Windows Mağazası'nda dağıttım. Durum çubuğunun uygulamanızda göründüğünü görüyorum.UWP'de durum çubuğunu gizle

var isAvailable = Windows.Foundation.Metadata.ApiInformation.IsTypePresent(typeof(StatusBar).ToString()); 
    if (isAvailable) 
     hideBar(); 

async void hideBar() 
{ 
    StatusBar bar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView(); 
    await bar.HideAsync(); 
} 

soru, neden yukarıdaki kod pencereleri deposunda çalışmaması gerektiğini edilir: Burada

benim kodudur? Ayrıca, windows mağazamda uyguladığım App link bağlantım var, ancak windows deposunda tam anahtar sözcüğü aradığımda, uygulamam windows deposunda gösterilmiyor, ancak bağlantıyı tıklamak penceremdeki uygulamasında görünecektir.

Teşekkürler!

cevap

10

ziyade benim için çalışıyor StatusBar türü için, Contract denetleniyor.

private async Task InitializeUi() 
{ 
    // If we have a phone contract, hide the status bar 
    if (ApiInformation.IsApiContractPresent("Windows.Phone.PhoneContract", 1, 0)) 
    { 
     var statusBar = StatusBar.GetForCurrentView(); 
     await statusBar.HideAsync(); 
    } 
} 
+0

Teşekkür ederim, kodunuzu uyguladım ve dağıtım sonrası pencereye bakıyorum. – ARH

+0

Bu işlevi nerede arıyorsun? App.xaml.cs içinde mi? veya yüklediğiniz gerçek sayfalarda? – erotavlas

+0

@erotavlas Kullanım durumunuza göre değişir. Tüm uygulama ömrü boyunca durum çubuğunu gizlemek isterseniz, bunu etkinleştirme/askıya alma yönteminde çağırırsınız. Belirli bir sayfa sırasında durum çubuğunu gizlemek istiyorsanız, olayları gezinme/etkinlik olayları sırasında gizlersiniz. – Herdo

0

Sen ToString() yerine FullName kullanmak zorunda:

... 
ApiInformation.IsTypePresent(typeof(StatusBar).FullName); 
... 
1

Eğer Release ve .NET Yerli toolchain ile derleme yaparken, tip bilgileri atılır alır o olmalı ve Could böylece sen geçtiğini düşündüğün dizgeyi geçmiyor musun? Belki tam tip adını sabit kodlamayı deneyebilirsiniz?

0

, Windows 10 yılında komut Window.Current.SetTitleBar (null);

1

Bu kod işe yaramaz çünkü. Net Yerel derleme (hangi Mağaza yapar) typeof (StatusBar). ToString(), beklediğiniz gibi literal tür adını döndürmez, ancak "EETypeRVA: 0x00021968" gibi bir şey döndürecektir. Bunun yerine değişmez dizeyi kullanın (StatusBar'ı yeniden adlandırmayacaksınız, değil mi?;) Veya IsApiContractPresent veya typeof (StatusBar) kullanın. FullName (önceden bildirildiği üzere). P.S. Aynı sorun yayınlanmaksızın çoğaltılabilir, yalnızca Sürüm yapılandırmasını kullanarak çalıştırın.

İlgili konular