2012-07-22 91 views
3

說,我想定期更新Windows 8活瓷磚,說10秒後。有什麼辦法可以實現嗎?我使用的地鐵XAML C#在Windows 8定期更新的Windows 8活瓷磚

下面是我對調度定時器的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()); 

在此先感謝。

+0

做u想在現場瓷磚更新什麼??圖片或文字? – Sajid 2012-07-22 10:43:07

+0

抱歉,我不清楚我的問題。我想更新圖像。我有三張圖片,我想在10秒後顯示。現在我可以使用DispatcherTimer來做到這一點,但圖像在瞬間發生了變化。他們沒有得到動畫,因爲我看到其他默認瓷磚變得動畫 – 2012-07-22 10:47:40

回答

0

不要使用分派器計時器,因爲它會減慢您的應用程序。您可以使用下面的在你的頁面初始化程序:

TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); 
+0

EnableNotificationQueue不會提供給我定期更新...通知不會重複... – 2012-07-22 16:44:18

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秒後過期。

(另外,也許你應該看看後臺服務,因爲這個特殊的解決方案可能不是最適合你想要的...)

+0

感謝Tenshiko。我會試試你的解決方案。美好的一天。 – 2012-08-06 04:44:06