가장 먼저 알아야 할 사항은 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 차 타일에 관한 조사도 수행해야합니다.
누구나 라이브 타일 및 푸시 알림에 대해 알고 있습니다. – Ethan