2013-10-04 2 views
1

Windows Phone 8 용 앱을 만들었고 내 앱에 라이브 타일을 구현하고 싶습니다. 나는 살아있는 타일에 대해서 아무것도 모릅니다. 나는 포럼과 모든 것에서 많은 예제를 시도했다.Windows Phone 8 라이브 타일 텍스트 및 이미지 업데이트

하지만 모두가 버튼 형태입니다 (뒤집기,주기와 유사). Cycle Button (사이클 버튼)을 클릭하면 시작 화면으로 이동하여 Cycle Tile (사이클 타일)을 표시합니다.

하지만 어떻게 앱에서 구현할 수 있습니까? 나는 시작 화면에 사용자 핀이있을 때만 삶의 타일을 보여주고 싶습니다.

누구든지이 문제를 해결할 수 있도록 도와주십시오.

미리 감사드립니다.

+0

누구나 라이브 타일 및 푸시 알림에 대해 알고 있습니다. – Ethan

답변

0

가장 먼저 알아야 할 사항은 Windows Phone 8의 LiveTiles는 C++이 아닌 C#/.NET 코드에서만 구현할 수 있다는 것입니다. 네이티브 라이브러리는 LiveTiles에 액세스 할 수 없으므로 .NET API를 사용해야합니다.

다음 ... 앱이 DirectX로 C++로 작성된 경우 Direct3D interop에서 XAML을 사용해야합니다. 즉, XAML/C#을 사용하는 프로젝트와 C++을 사용하는 VS 프로젝트가 적어도 2 개 이상 있어야합니다. LiveTiles는 C++ 구성 요소에서 C# XAML 구성 요소로 이벤트를 보내는 콜백 및 위임을 통해 업데이트됩니다. (앱에서 C#/.NET 만 사용하는 경우 콜백 필요 없음)

한 가지 더 : Windows Phone에서 항상 작동하는 유일한 유형의 LiveTile은 FlipTile 유형입니다. 아이코닉 타일을 사용하는 경우 WP8은 일반적으로 색상을 무시하고 투명도는 &입니다.

std:string dummyStd = "test string to display"; 
std::wstring dummyWs.assign(dummyStd.begin(), dummyStd.end()); 
Platform::String^ dummy = ref new Platform::String(separatorWs.c_str()); 

m_d3DInterop->OnLiveTilesUpdates(dummy); 

와 C#을 구성 요소에서 미리보기 :

public void OnLiveTilesUpdates(String s) 
    { 
     String szTitle = "title"; 
     String szText = s; 
     ShellTile oTile = ShellTile.ActiveTiles.First(); 
     { 
      FlipTileData oFliptile = new FlipTileData(); 
      oFliptile.Title = ""; 
      oFliptile.Count = 0; 
      oFliptile.BackTitle = szText; 

      oFliptile.BackContent = szTitle; 
      oFliptile.WideBackContent = szTitle; 

      oFliptile.SmallBackgroundImage = new Uri("/Assets/Tiles/FlipTileFrontSmall.png", UriKind.Relative); 
      oFliptile.BackgroundImage = new Uri("/Assets/Tiles/FlipTileFrontMedium.png", UriKind.Relative); 
      oFliptile.WideBackgroundImage = new Uri("/Assets/Tiles/FlipTileFrontHigh.png", UriKind.Relative); 

      oFliptile.BackBackgroundImage = new Uri("/Assets/Tiles/FlipTileFrontMedium.png", UriKind.Relative); 
      oFliptile.WideBackBackgroundImage = new Uri("/Assets/Tiles/FlipTileFrontHigh.png", UriKind.Relative); 
      oTile.Update(oFliptile); 
     } 

것은 당신이 이벤트 위임을/사용하여 코드의 두 조각을 결합 할 필요가 기억 여기

는 내 C++ 구성 요소에서 미리보기입니다 콜백 (Direct3D interop에서 XAML을 사용하는 경우에만 해당). 또한 도착한 경우 DrawingSurfaceBackgroundGrid에 WP8에서 일부 z- 순서 문제가 있고 WP8에서 SwapChainBackgroundPanel이 지원되지 않으므로 렌더링에 가장 적합한 구성 요소는 DrawingSurface라는 것을 알고 있어야합니다.

추신 : 2 차 타일에 관한 조사도 수행해야합니다.

관련 문제