2012-07-22 2 views
3

10 초 후에 주기적으로 Windows 8 라이브 타일을 업데이트하려고합니다. 그것을 달성 할 수있는 방법이 있습니까? 나는 여기에 내가 디스패처 타이머의 틱 이벤트에 쓰고 있어요 코드가 윈도우 8Windows 8의 주기적 업데이트 라이브 타일

에서 지하철 XAML의 C#을 사용하고 있습니다 :

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

유 라이브 타일에서 업데이트 무엇을 원하는가? 이미지 또는 텍스트 ??? – Sajid

+0

죄송합니다. 제 질문에 명확하지 않았습니다. 이미지를 업데이트하고 싶습니다. 나는 10 초 후에 보여주고 싶은 3 개의 이미지를 가지고있다. 지금은 DispatcherTimer를 사용하여 이미지를 변경할 수 있지만 이미지는 플래시에서 변경됩니다. 그들은 애니메이트를 얻지 못하고 있습니다. 다른 기본 타일이 움직이는 것을 볼 수 있습니다. –

답변

0

Dispatcher 타이머를 사용하면 응용 프로그램이 느려질 수 있으므로 사용하지 마십시오. 당신은 당신의 페이지 초기화에 다음을 사용할 수 있습니다

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

EnableNotificationQueue는 정기적 인 업데이트를 제공하지 않을 것입니다 ... 알림이 재발하지 않습니다 .... –

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

Thanks Tenshiko. 나는 당신의 해결책을 시도 할 것이다. 좋은 날. –

관련 문제