2011-07-04 18 views
20

हटाएं यह एक आसान सवाल है, और एक साधारण काम है लेकिन मुझे यह जानने के लिए कोई जानकारी नहीं मिल रही है कि मुझे क्या करना है।आम आवेदन टाइल -

मेरे पास एक ऐसा एप्लिकेशन है जिसका मुख्य टाइल (पिन किया गया) कभी-कभी डिफ़ॉल्ट, एकल पक्षीय टाइल होने की आवश्यकता होती है और कभी-कभी टाइल के पीछे प्रदर्शित जानकारी की आवश्यकता होती है। मैं बैकबैकग्राउंड इमेज, बैककंटेंट और बैकटाइट को अनुसूचित एक्शन सेवा से सफलतापूर्वक जोड़ सकता हूं, लेकिन जब उन्हें अब आवश्यकता नहीं है तो मैं उन्हें हटा नहीं सकता। यह द्वितीयक टाइल नहीं है इसलिए मैं इसे हटा नहीं सकता और फिर से बना सकता हूं और इसे फिर से जोड़ सकता हूं।

क्या किसी को पता है कि डबल-पक्षीय टाइल को कोड के माध्यम से एकल तरफा वापस वापस करना संभव है, और यदि हां, तो मैं उस व्यवहार को कैसे प्राप्त कर सकता हूं?

संपादित

सेटिंग्स कि StandardTileData वस्तु से लागू करने के अतिरिक्त हैं - अगर आप केवल एक शीर्षक निर्दिष्ट, उदाहरण के लिए, अन्य सभी तत्व एक ही है और केवल शीर्षक अद्यतन किया जाता है रहते हैं। मैंने टाइल के पीछे दिखाई देने वाले तीन पैरामीटर सेट करने का प्रयास किया है और आंशिक सफलता मिली है। प्रभाव यह है कि पृष्ठभूमि छवि, शीर्षक पाठ और सामग्री पाठ सभी हटा दिए जाते हैं, लेकिन टाइल अभी भी एक पूरी तरह खाली रिक्त पक्ष दिखाने के लिए फ़्लिप हो जाती है।

संपादित करें पर दोबारा

तो, प्रलेखन को देख, टाइल वापस अलग ढंग से सामने से व्यवहार करता है। स्ट्रिंग में बैक कंटेंट या बैकटाइटल सेट करना। लक्षण उनको हटा देगा। सब वहाँ अच्छा है। हालांकि, यह कहता है कि "यदि एक खाली यूआरआई पर सेट किया गया है, तो बैकबैकग्राउंड छवि प्रदर्शित नहीं की जाएगी।" मैं खाली उरी बनाने के बारे में कैसे जा सकता हूं? मैंने नई उरी (स्ट्रिंग, खाली) की कोशिश की लेकिन यह एक खाली उरी बनाने की कोशिश करने के बारे में अपवाद फेंकता है - जो मैं करने की कोशिश कर रहा हूं।

+0

आप इसे हटाने का प्रयास कैसे कर रहे हैं? –

+0

मैंने तीन "बैक" गुणों को नल (काम नहीं किया), खाली तार/यूआरआई (काम नहीं किया) पर सेट करने का प्रयास किया है। मैंने 2 मानक टाइलडेटा ऑब्जेक्ट्स (एक तरफा के लिए एक, डबल पक्ष के लिए 1) बनाने और उन्हें उपयुक्त के रूप में लागू करने का भी प्रयास किया है, लेकिन यह भी असफल रहा। – ZombieSheep

उत्तर

28

ठीक है, मुझे लगता है कि मुझे मिल गया है, और यह के अनुकूल होने की संबंधित प्रतीत होता है जिस तरह से टाइल डेटा संभाला जाता है ...

पहले, एक खाली स्ट्रिंग पर मान सेट करने से अब प्रभाव पड़ता है टाइल में Eaxmple के लिए, शीर्षक = string.Empty सेटिंग मौजूदा शीर्षक को जगह में छोड़ देगा। अब, हालांकि, यह शीर्षक को खाली कर देगा। यह अच्छा है - इसका मतलब है कि मैं बैकटाइट और बैककंटेंट स्ट्रिंग को आसानी से हटा सकता हूं। हम अधबीच में हैं।

अब, बैकबैकग्राउंड इमेज से छुटकारा पाने के लिए, दस्तावेज कहता है "यदि एक खाली यूआरआई पर सेट किया गया है, तो बैकबैकग्राउंड छवि प्रदर्शित नहीं की जाएगी।" - सब अच्छा है, सिवाय इसके कि आप किसी भी साधारण तरीके से खाली उरी नहीं बना सकते हैं। एक तरह से मैं यह काम कर दिया है जैसे

BackBackgroundImage = new Uri("obviouslyMadeUpLocation", UriKind.Relative); 

मैं जब तुम टाइल करने के लिए इसे लागू करने की कोशिश है कि एक अपवाद फेंक अपेक्षा की होगी, एक उरी मूल्य जो मौजूद नहीं है के लिए सेट करने के लिए है, लेकिन यह नहीं करता - यह सिर्फ पृष्ठभूमि छवि को साफ़ करता है।

तो यह है। मुझे बस इतना करना है कि इन गुणों को अनसेट करने के लिए निम्न को कॉल करना और मेरी टाइल को वापस रखना था।

private void ResetMyMainTile() 
{ 
    ShellTile tile = ShellTile.ActiveTiles.First(); 
    StandardTileData data = new StandardTileData 
    { 
     BackBackgroundImage = new Uri("IDontExist",UriKind.Relative), 
     BackContent = string.Empty, 
     BackTitle = string.Empty 
    }; 
    tile.Update(data); 
} 
+2

आप इस तरह एक खाली उरी बना सकते हैं: 'नया उरी ("", उरीकिंड। रिलेवेटिव)' (ध्यान दें कि अगर आप निरंतर के रूप में उरीकिंड निर्दिष्ट करते हैं, तो यह फेंक देगा एक अपवाद)। – hasseg

0

पूरे टाइल (सभी विवरण) को फिर से सब कुछ के लिए सेट करने का प्रयास करें जैसा कि पहले था/अभी पृष्ठभूमि विवरण के बिना।

अद्यतन
यह काम नहीं करता ?:

ShellTile tile = ShellTile.ActiveTiles.First(); 
tile.Update(null); 

या

tile.update(new StandardTileData()); 
+1

सुझाव के लिए धन्यवाद, मैट, लेकिन ये सेटिंग्स योजक हैं - यदि आप पैरामीटर में से किसी एक को छोड़ देते हैं, तो पैरामीटर का पिछला मान बनी रहती है (उदा। केवल टाइल शीर्षक सेट करना टाइल के सभी अन्य बिट्स को बरकरार रखेगा)। यही कारण है कि मैंने सोचा कि उन्हें शून्य करने के लिए सेट करना चाल होगा, और यह आंशिक रूप से करता है - यह टाइल के पीछे से दिखाई देने वाले तत्वों को हटा देता है, लेकिन पीछे की ओर एक खाली टाइल के रूप में प्रदर्शित होता है। :( – ZombieSheep

+0

मैंने प्रलेखन के आधार पर अपना प्रश्न अपडेट कर लिया है। अब मैं पृष्ठभूमि छवि के लिए "खाली उरी" बनाने का प्रयास कर रहा हूं। उस पर कोई सुझाव, कृपया? – ZombieSheep

+0

@ ज़ोंबीशेप उत्तर अपडेट –

1

यह मेरे लिए काम करता है।

new Uri("Background.png", UriKind.RelativeOrAbsolute); 

ShellTile TileToFind = ShellTile.ActiveTiles.First(); 

     if (TileToFind != null) 
     { 

      StandardTileData NewTileData = new StandardTileData 
      { 
       Title ="Status", 
       BackgroundImage = new Uri("Background.png", UriKind.RelativeOrAbsolute), 
       Count = 0, 
       BackTitle = "", 
       BackBackgroundImage = new Uri("doesntexist.png", UriKind.RelativeOrAbsolute), 
       BackContent = "" 
      }; 

      TileToFind.Update(NewTileData); 
     }