Sự hiểu biết của tôi là mọi ứng dụng đều quyết định nơi thực hiện việc này cho chính nó. Thông thường, bạn sẽ làm điều đó bất cứ khi nào bạn cũng cập nhật giao diện người dùng thông thường của mình với cùng một dữ liệu - ví dụ: nếu ứng dụng của bạn là trình đọc RSS và bạn vừa tải xuống một mục mới để hiển thị, đó là nơi bạn cũng cập nhật ô của mình bằng cách đăng thông báo. Trong ứng dụng JavaScript mẫu, điều này được thực hiện từ các trình xử lý sự kiện cho các điều khiển để thuận tiện.
Đối với mã để thay đổi ô, nó sẽ gần giống với phiên bản JavaScript, vì trong cả hai trường hợp bạn sử dụng Windows.UI.Notifications namespace. Sau đây là một ứng dụng C# rất đơn giản cập nhật ô xếp khi bạn nhấp vào nút. 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>
và mã sau:
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));
}
}
}
Đừng quên rằng bạn cần một gạch rộng cho văn bản xuất hiện - để có được nó, thiết lập một số hình ảnh cho "Logo Wide" trong gói .appxmanifest.
Nguồn
2011-09-18 20:40:15
Ah! Gạch của tôi vẫn là hình vuông. Thay đổi nó thành cái rộng và nó hoạt động. –