Windows phone 8 Windows Phone 8 Live tiles文本和图像更新
我为windows Phone 8创建了一个应用程序,希望在我的应用程序中实现Live tiles。我甚至对活瓷砖一无所知。我尝试了论坛上的许多例子 但都是按钮的形式,如翻转,循环如果我点击循环按钮,它将直接进入开始屏幕,显示循环瓷砖 但是,我如何在我的应用程序中实现。我只想在用户进入“开始”屏幕时显示“生活”平铺 任何人,帮我解决这个问题Windows phone 8 Windows Phone 8 Live tiles文本和图像更新,windows-phone-8,implementation,live-tile,Windows Phone 8,Implementation,Live Tile,我为windows Phone 8创建了一个应用程序,希望在我的应用程序中实现Live tiles。我甚至对活瓷砖一无所知。我尝试了论坛上的许多例子 但都是按钮的形式,如翻转,循环如果我点击循环按钮,它将直接进入开始屏幕,显示循环瓷砖 但是,我如何在我的应用程序中实现。我只想在用户进入“开始”屏幕时显示“生活”平铺 任何人,帮我解决这个问题 提前谢谢
提前谢谢首先,你需要知道的是,Windows Phone 8上的LIVETE只能由C/Net代码实现,而不是C++实现。本机库无法访问LiveTiles,因此您需要使用.NETAPI 接下来。。。如果你的应用程序是用C++编写的,你需要使用Direct3D交互式的XAML。这意味着你将有至少2个VS项目,一个使用XAML/C,另一个使用C++。LiveTiles将通过回调和委托更新,将事件从C++组件发送到C XAML组件。 如果你的应用程序只使用C/.NET,你不需要;我不需要任何回电 还有一件事:在Windows Phone上始终有效的LiveTile的唯一类型是FlipTile类型。如果使用标志性瓷砖,WP8通常会忽略颜色,只显示白色和透明度
这是我的C++组件的一个片段:
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);
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组件的一个片段:
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);
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);
}
请记住,只有在将XAML与Direct3D互操作结合使用时,才需要使用事件和委托/回调绑定这两段代码。
此外,如果您来到这里,您应该知道用于渲染的最佳组件是DrawingSurface,因为DrawingSurfaceBackgroundGrid在WP8中存在一些z顺序问题,而WP8中不支持SwapChainBackgroundPanel
PS:您还应该对辅助互动程序进行一些研究。任何人都知道实时互动程序和推送通知