2011-07-04 13 views
20

Bu basit bir soru ve görünüşte basit bir görev ama ne yapmam gerektiğini gerçekleştirmek için herhangi bir bilgi bulamıyorum.Mango Uygulaması Döşeme - geri alın

Ana döşemesinin (sabitlendiğinde) bazen varsayılan, tek taraflı çini olması gereken ve bazen döşemenin arkasında görüntülenen bilgilere sahip olması gereken bir uygulamam var. BackBackgroundImage, BackContent ve BackTitle'ı ScheduledActionService'den başarıyla ekleyebilirim, ancak artık gerekmediklerinde onları kaldıramıyorum. Bu ikincil bir karo değildir, bu yüzden onu kaldıramaz ve yeniden oluşturamaz ve yeniden ekleyemem.

Çift taraflı bir döşemeyi tek taraflı kod aracılığıyla geri döndürmenin mümkün olup olmadığını bilen var mı, eğer öyleyse, bu davranışı nasıl sağlayabilirim, lütfen?

DÜZENLEME

StandardTileData nesneden uygulanmıyor ayarlar katkı vardır - Eğer sadece örneğin, tüm diğer unsurları aynı ve tek başlık güncellenir kalır bir başlık belirtirseniz. Döşemenin arkasında görünen üç parametreyi sıfırlamaya ve kısmi başarıya ayarlamaya çalıştım. Efekt, arka plan resminin, başlık metninin ve içerik metninin hepsinin kaldırılmış olmasıdır, ancak karo tamamen boş bir ters tarafı göstermek için hala ters çevrilmiştir.

DÜZENLEME TEKRAR

Yani, dokümantasyon bakarak, karo arkadan öne farklı davranır. Arka içeriği veya geri dizeyi dizgeye ayarlama. Hepsi iyi. Ancak, "Boş bir URI'ye ayarlanmışsa, BackBackgroundImage görüntülenmeyecektir." Boş bir Uri oluşturmaya nasıl giderim? Yeni Uri'yi (string, Empty) denedim ama bu, boş bir Uri oluşturmaya çalışmakla ilgili bir istisna atar - ki yapmaya çalıştığım şey budur.

+0

Nasıl kaldırmaya çalışıyorsunuz? –

+0

Üç "Geri" özelliğini null'lara (çalışmadı), boş dizeleri/URI'leri (çalışmadı) ayarlamaya çalıştım. Ayrıca 2 StandardTileData nesnesi oluşturmayı (tek taraflı, 1 çift taraflı) ve bunları uygun şekilde uygulamayı denedim, ancak bu da başarısız oldu. – ZombieSheep

cevap

28

Tamam, ben bunu buldum ve bir değişiklik ile ilişkili olduğu görünmektedir Döşeme verileri işlenir ...

Önceden, boş bir dizeye bir değer ayarlamak şimdi etkili olurdu döşemede. Eaxmple için title = string.Empty ayarı mevcut başlığı yerinde bırakır. Şimdi, yine de, başlığı boşaltacaktır. Bu iyi - BackTitle ve BackContent dizgisini kolayca kaldırabileceğim anlamına geliyor. Orada yarım yoldayız.

Artık BackBackgroundImage'dan kurtulmak için, "Boş bir URI'ye ayarlanmışsa, BackBackgroundImage görüntülenmeyecektir." - her şey yolunda, boş bir Uri'yi basit bir şekilde yaratamazsın. Ben o iş yaptık tek yön, sana karo uygulamak çalıştığınızda bu bir istisna bekleniyor olurdu mesela

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

, var olmayan bir Uri değere ayarlamaktır ama değil - sadece arka plan görüntüsünü temizler.

İşte bu kadar. Tek yapmam gereken bu özellikleri kaldırmak ve fayansımı olduğu gibi geri çağırmak için aşağıdakileri çağırmak.

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

Bunun gibi boş bir Uri oluşturabilirsiniz: 'yeni Uri (" ", UriKind.Relative)' (UriKind'i Mutlak olarak belirtirseniz, o zaman atılacağını unutmayın. bir istisna). – hasseg

0

Tüm döşemeyi (tüm ayrıntılar), önceki/şimdi olduğu gibi arka plan ayrıntıları olmadan olduğu gibi yeniden ayarlamaya çalışın.

Güncelleme
bu Çalışmaz ?:

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

veya

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

Öneri için teşekkürler, Matt, ancak bu ayarlar eklenebilir - parametrelerden birini atlarsanız, parametrenin önceki değeri devam eder (ör., Yalnızca karo başlığının ayarlanması, döşemenin tüm diğer bitlerini sağlam bırakır). Bu yüzden onları null olarak ayarlamanın hile yapacağını düşündüm ve kısmen de olsa - görünür elemanları kaldırımın arka kısmından kaldırır, ancak arka kısım hala boş bir karo olarak görüntülenir. :( – ZombieSheep

+0

Sorumluluğum belgelere dayanarak güncelledim.Şimdi arka plan görüntüsü için bir "boş Uri" oluşturmaya teşebbüs ettim.Önce bir öneri, lütfen – ZombieSheep

+0

@ZombieSheep güncellendi –

1

Bu benim için çalışır.

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