2015-12-16 12 views
7

में स्टेटस बार छुपाएं मैंने यूडब्ल्यूपी में स्टेटस बार छुपाने के लिए कोड के नीचे उपयोग किया है। जब मैं अपने कंप्यूटर में विकास मोड में ऐप चलाता हूं तो स्टेटस बार विंडोज फोन में नहीं दिखाया जाता है। ऐप डाउनलोड करने के बाद, मैंने विंडोज स्टोर में ऐप को तैनात किया, मुझे लगता है कि मेरे ऐप में स्टेटस बार दिखाई देता है।यूडब्ल्यूपी

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(); 
} 

सवाल है, क्यों उपरोक्त कोड खिड़कियों की दुकान में काम नहीं करना चाहिए:

यहाँ मेरी कोड है? इसके अलावा, मेरे पास विंडोज़ स्टोर में मेरे ऐप App link का लिंक है, लेकिन जब मैं विंडोज स्टोर में सटीक कुंजी शब्द खोजता हूं, तो मेरा एप्लिकेशन विंडोज स्टोर में नहीं दिखाया जाता है, लेकिन लिंक में क्लिक करने से मेरा ऐप विंडो स्टोर में दिखाई देगा।

धन्यवाद!

उत्तर

10

Contract के लिए जांच, बजाय StatusBar के लिए मेरे लिए ठीक काम करता है।

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

धन्यवाद, मैंने आपका कोड लागू कर लिया है और विंडोज स्टोर पर तैनाती की देखभाल करेगा। – ARH

+0

आप इस समारोह को कहां कॉल करते हैं? App.xaml.cs में? या आपके द्वारा लोड किए गए वास्तविक पृष्ठों पर? – erotavlas

+0

@erotavlas आपके उपयोग-मामले पर निर्भर करता है। यदि आप पूरे एप्लिकेशन जीवनकाल के दौरान स्टेटस बार को छिपाना चाहते हैं, तो आप इसे सक्रिय/निलंबित विधि में कॉल करेंगे। यदि आप किसी विशिष्ट पृष्ठ के दौरान स्टेटस बार को छिपाना चाहते हैं, तो आप ईवेंट हैंडलर से नेविगेट-टू/नेविगेट के दौरान इसे छुपाएंगे। – Herdo

0

आप ToString() के बजाय FullName उपयोग करने के लिए:

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

यह है कि जब आप रिलीज में और नेट मूल निवासी toolchain के साथ संकलन, प्रकार की जानकारी खारिज हो जाता है हो सकता है और किया जा सका तो तुम स्ट्रिंग को पार नहीं कर रहा है, आपको लगता है कि आप गुजर रहे हैं? हो सकता है कि आप पूर्ण प्रकार के नाम को कड़ी-कोडिंग करने का प्रयास कर सकें?

0

विंडोज 10 में कमांड विंडो है। वर्तमान .etTitleBar (शून्य);

1

यह कोड काम नहीं करेगा क्योंकि नेट नेटिव संकलन (कौन सा स्टोर करता है) टाइपऑफ (स्टेटसबार) के बाद। ToString() आपके द्वारा अपेक्षा की जाने वाली शाब्दिक प्रकार के नाम को वापस नहीं करेगा, लेकिन "EETypeRVA: 0x00021968" जैसी कुछ वापस लौटाएगा। इसके बजाय शाब्दिक स्ट्रिंग का उपयोग करें (आप स्टेटसबार का नाम बदलने के लिए नहीं जा रहे हैं, है ना?;) या IsApiContractPresent या टाइपऑफ (स्टेटसबार) का उपयोग करें। पूर्णनाम (जैसा कि पहले से ही सलाह दी गई थी)। पीएस प्रकाशन के बिना एक ही समस्या को पुन: उत्पन्न किया जा सकता है, इसे रिलीज कॉन्फ़िगरेशन का उपयोग करके चलाएं।

संबंधित मुद्दे