2010-11-20 12 views
13

मेरे पास सिल्वरलाइट में निर्मित एक विंडोज फोन 7 एप्लीकेशन है। यह एप्लिकेशन एप्लिकेशन बार का उपयोग करता है। अगर एप्लिकेशन ने खरीदा है, तो मैं एप्लिकेशन बार में से किसी एक बटन को छिपाना चाहता हूं। हालांकि, मैंने देखा है कि ApplicationIconButton क्लास "दृश्यता" संपत्ति का खुलासा नहीं करता है। उसी समय, मुझे रनटाइम पर एप्लिकेशन बार को गतिशील रूप से पॉप्युलेट करने का कोई तरीका नहीं दिखाई दिया।एक WP7 सिल्वरलाइट एप्लिकेशन में प्रोग्राम बारिक रूप से एप्लिकेशन बार आइकन छुपाएं?

क्या कोई इस में कुछ अंतर्दृष्टि प्रदान कर सकता है? क्या यह संभव है? यदि हां, तो कैसे?

धन्यवाद!

उत्तर

32

एप्लिकेशन बार बटन ऑब्जेक्ट-आधारित तरीके से काम करते हैं जैसे आप उम्मीद करेंगे। इसलिए, जब भी आप उस पर एक विशिष्ट कार्रवाई करना चाहते हैं (उदा। अक्षम) बटन बटन को निर्दिष्ट करने की आवश्यकता है।

उदाहरण के लिए: आपको लगता है कि दिए गए

for (int i = 0; i < 2; i++) 
{ 
    ApplicationBarIconButton b = new ApplicationBarIconButton(); 
    b.Text = i.ToString(); 
    b.IconUri = new Uri("/Images/icon1.png", UriKind.Relative); 
    ApplicationBar.Buttons.Add(b); 
} 

जब बटन को हटाने के लिए, आप बस RemoveAt उपयोग कर सकते हैं,:

ApplicationBarIconButton b = (ApplicationBarIconButton)ApplicationBar.Buttons[0]; 
b.IsEnabled = false; 

यह कहा जा रहा है, तो आप नए ApplicationBarIconButton उदाहरण बना है और उन्हें ApplicationBar को पारित कर सकते हैं निकालने के लिए बटन की अनुक्रमणिका जानें:

ApplicationBar.Buttons.RemoveAt(0); 
13

मैं अपने कोड में आवेदन बार बटनों को बदलने के लिए निम्न विधि का उपयोग:

private void UpdateAppbarButton(int index, string uriString, string text, bool visibility, EventHandler handler) 
{ 
    ApplicationBarIconButton button1 = null; 

    if (ApplicationBar.Buttons.Count > index) 
    { 
     button1 = ApplicationBar.Buttons[index] as ApplicationBarIconButton; 
    } 

    if (button1 != null) 
    { 
     { 
      ApplicationBar.Buttons.Remove(button1); 
     } 
    } 
    if (visibility == true) 
    { 
     button1 = new ApplicationBarIconButton(new Uri(uriString, UriKind.Relative)); 
     button1.Text = text; 
     button1.Click += handler; 
     ApplicationBar.Buttons.Insert(index, button1); 
    } 
} 

uriString आइकन है कि मैं एप्लिकेशन बटन पर दिखाए जाने वाले रिश्तेदार पथ है। आप शायद अपने कोड के लिए इस कोड को अनुकूलित कर सकते हैं।

अनिवार्य रूप से, बटन को दृश्यमान करने की बजाय, आपको बटन को हटाना होगा (यदि यह वहां है) या इसे दोबारा जोड़ना है।

+0

मुझे एप्पल के लिए IconUri देना होगा http url के रूप में bicIcon बटन। क्या यह संभव है? मुझे नीचे अपवाद मिल रहा है। "पथ पूर्ण नहीं हो सकता"। – Sujiz

+0

हाय सुजिज, क्या आपने यूरीकिंड पैरामीटर को पूर्ण करने के लिए सेट किया था? हालांकि मुझे वास्तव में पता नहीं है कि HTTP पते काम करेंगे या नहीं, यह एक त्वरित प्रयास के लायक है। –

+0

मैंने यूरीकिंड को पूर्ण करने के लिए सेट किया है लेकिन यह मेरे लिए काम नहीं करता है। क्या http url से एप्लिकेशन बार आइकन लोड करने के लिए कोई अन्य समाधान है? – Sujiz

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