मेरी समझ यह है कि प्रत्येक ऐप यह तय करता है कि यह अपने लिए कहां करें। आम तौर पर, जब भी आप एक ही डेटा के साथ अपना सामान्य यूआई अपडेट कर रहे हों तो आप ऐसा करेंगे - उदा। यदि आपका ऐप एक आरएसएस रीडर है, और आपने अभी प्रदर्शित करने के लिए एक नया आइटम डाउनलोड किया है, तो वह जगह है जहां आप अधिसूचना पोस्ट करके अपनी टाइल अपडेट भी करते हैं। नमूना जावास्क्रिप्ट ऐप में, यह सुविधा के लिए नियंत्रण के लिए ईवेंट हैंडलर से किया जाता है।
टाइल बदलने के लिए कोड के रूप में, यह जावास्क्रिप्ट संस्करण के लगभग समान होना चाहिए, क्योंकि दोनों मामलों में आप Windows.UI.Notifications namespace का उपयोग करते हैं। निम्नलिखित एक बहुत ही सरल सी # ऐप है जो बटन पर क्लिक करते समय टाइल अपडेट करता है। XAML:
<UserControl x:Class="TileNotificationCS.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
d:DesignHeight="768" d:DesignWidth="1366">
<StackPanel x:Name="LayoutRoot" Background="#FF0C0C0C">
<TextBox x:Name="message"/>
<Button x:Name="changeTile" Content="Change Tile" Click="changeTile_Click" />
</StackPanel>
</UserControl>
और कोड के पीछे:
using System;
using Windows.Data.Xml.Dom;
using Windows.UI.Notifications;
using Windows.UI.Xaml;
namespace TileNotificationCS
{
partial class MainPage
{
TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
public MainPage()
{
InitializeComponent();
}
private void changeTile_Click(object sender, RoutedEventArgs e)
{
XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText01);
XmlElement textElement = (XmlElement)tileXml.GetElementsByTagName("text")[0];
textElement.AppendChild(tileXml.CreateTextNode(message.Text));
tileUpdater.Update(new TileNotification(tileXml));
}
}
}
भूल जाते हैं कि आप एक विस्तृत टाइल की जरूरत पाठ दिखाने के लिए नहीं है - हो यह, "वाइड लोगो" के लिए कुछ छवि पैकेज में स्थापित करने के लिए .appxmanifest।
स्रोत
2011-09-18 20:40:15
आह है! मेरा टाइल अभी भी एक वर्ग था। इसे व्यापक रूप से बदल दिया और यह काम किया। –