3

たとえば、Windows 8 のライブ タイルを定期的に、たとえば 10 秒後に更新したいとします。それを達成する方法はありますか?Windows 8でmetro xaml c#を使用しています。

Dispatcher Timer の Tick イベントで書いているコードは次のとおりです。

switch(imageIndex)
{
    case  0:
        imageUrl = "Assets/Image1.png";
        break;
    case 1:
        imageUrl = "Assets/Image1.png";
        break;
    case 2:
        imageUrl = "Assets/Image1.png";
        break;        
}

ITileWIdeImageAndText01 tileContent = TileContentFactory.CreateTileWideImageAndText01();
tileContent.TextCaptionWrap.Text = "Hello";
tileContent.Image.Src = imageUrl;
tileContent.Image.Alt = "";

ITileSquareImage squareContent = TileContentFactory.CreateTileSquareImage();
squareContent.Image.Src = imageUrl;
squareContent.Image.Alt = "";
tileContent.SquareContent = squareContent;

TileUpdateManager.CreateTileUpdaterForApplication().Update(tileContent.CreateNotification());

前もって感謝します。

4

2 に答える 2

0

アプリの速度が低下するため、Dispatcher Timer は使用しないでください。ページの初期化子で以下を使用できます。

TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);
于 2012-07-22T15:51:53.627 に答える
0

これを行う方法は次のとおりです。

switch(imageIndex)
{
    case  0:
        imageUrl = "Assets/Image1.png";
        break;
    case 1:
        imageUrl = "Assets/Image1.png";
        break;
    case 2:
        imageUrl = "Assets/Image1.png";
        break;        
}

ITileWIdeImageAndText01 tileContent = TileContentFactory.CreateTileWideImageAndText01();
tileContent.TextCaptionWrap.Text = "Hello";
tileContent.Image.Src = imageUrl;
tileContent.Image.Alt = "";

ITileSquareImage squareContent = TileContentFactory.CreateTileSquareImage();
squareContent.Image.Src = imageUrl;
squareContent.Image.Alt = "";
tileContent.SquareContent = squareContent;


var updater = TileUpdateManager.CreateTileUpdaterForApplication();
updater.EnableNotificationQueue(true);

updater.AddToSchedule(
    new ScheduledTileNotification(
        tileContent.CreateNotification(), 
        DateTime.Now.AddSeconds(10))
    { 
           ExpirationTime=DateTimeOffset.UtcNow.AddSeconds(20)
    });

これにより、アプリを起動してから 10 秒後に通知が表示されます。さらに 10 秒後に有効期限が切れます。

(また、この特定のソリューションが必要なものに最適ではない可能性があるため、バックグラウンド サービスを検討する必要があるかもしれません...)

于 2012-07-30T15:19:57.917 に答える