利用mangopollo可以让我们在7.8方便的创建live tiles…
Mangopollo will allow you to easily take advantage of new windows phone tiles (cyclic, flip, iconic) if your application is run from a Windows Phone 7.8 or 8 as well as new launchers if your application is run from a Windows Phone 8 while remaining compatible with windows phone 7.
安装mangopollo可以通过nuget
PM> Install-Package Mangopollo
还是来看使用效果吧
首先是判断:
//判断是否wp8 private void testIfWP8_Click(object sender, RoutedEventArgs e) { if (Utils.IsWP8) { MessageBox.Show("It's a Windows Phone 8 !"); } else { MessageBox.Show("It's a Windows Phone 7 !"); } }
//判断是否支持新的Tiles
private void TestIfWP78_Click(object sender, RoutedEventArgs e)
{if (Utils.CanUseLiveTiles)
{ MessageBox.Show("It's a Windows Phone 7.8 or sup !");}
else
{ MessageBox.Show("It's a Windows Phone 7 !");}
}
创建CycleTile:
private void CreateCycleTile_Click(object sender, RoutedEventArgs e)
{
if (!Utils.CanUseLiveTiles)
{
MessageBox.Show("This feature needs Windows Phone 8");
return;
}
try
{
var mytile = new CycleTileData
{
Title = "cyclic tile",
Count = 42,
SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative),
CycleImages = new List {new Uri("/Assets/Image1.png", UriKind.Relative), new Uri("/Assets/Image2.png", UriKind.Relative), new Uri("/Assets/Image3.png", UriKind.Relative)}
};
#if ALTERNATIVE_SOLUTION
var mytile = Mangopollo.Tiles.TilesCreator.CreateCyclicTile("cyclic tile", 42, new Uri("/Assets/logo159x159.png", UriKind.Relative), new List() { new Uri("/Assets/Image1.png", UriKind.Relative), new Uri("/Assets/Image2.png", UriKind.Relative), new Uri("/Assets/Image3.png", UriKind.Relative) });
#endif
ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20cycle%20tile", UriKind.Relative), mytile, false);
}
catch
{
MessageBox.Show("remove tile before create it again");
}
}
private void CreateCycleTileWide_Click(object sender, RoutedEventArgs e)
{
if (!Utils.CanUseLiveTiles)
{
MessageBox.Show("This feature needs Windows Phone 8");
return;
}
try
{
var mytile = new CycleTileData
{
Title = "cyclic wide tile",
Count = 42,
SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative),
CycleImages = new List {new Uri("/Assets/Image1.png", UriKind.Relative), new Uri("/Assets/Image2.png", UriKind.Relative), new Uri("/Assets/Image3.png", UriKind.Relative)}
};
#if ALTERNATIVE_SOLUTION
var mytile = Mangopollo.Tiles.TilesCreator.CreateCyclicTile("cyclic wide tile", 42, new Uri("/Assets/logo159x159.png", UriKind.Relative), new List() { new Uri("/Assets/Image1.png", UriKind.Relative), new Uri("/Assets/Image2.png", UriKind.Relative), new Uri("/Assets/Image3.png", UriKind.Relative) });
#endif
ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20wide%20cycle%20tile", UriKind.Relative), mytile, true);
}
catch
{
MessageBox.Show("remove tile before create it again");
}
}效果:

创建IconicTile:
private void CreateIconicTile_Click(object sender, RoutedEventArgs e)
{if (!Utils.CanUseLiveTiles)
{ MessageBox.Show("This feature needs Windows Phone 8");return;
}
try
{var mytile = new IconicTileData
{Title = "iconic tile",
Count = 8,
BackgroundColor = Colors.Purple,
IconImage = new Uri("/Assets/logo202x202.png", UriKind.Relative), SmallIconImage = new Uri("/Assets/logo110x110.png", UriKind.Relative)};
#if ALTERNATIVE_SOLUTION
var mytile = Mangopollo.Tiles.TilesCreator.CreateIconicTile("iconic tile", 8, Colors.Purple, new Uri("/Assets/logo202x202.png", UriKind.Relative), new Uri("/Assets/logo110x110.png", UriKind.Relative));#endif
ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20iconic%20tile", UriKind.Relative), mytile, false);}
catch
{ MessageBox.Show("remove tile before create it again");}
}
private void CreateIconicTileWide_Click(object sender, RoutedEventArgs e)
{if (!Utils.CanUseLiveTiles)
{ MessageBox.Show("This feature needs Windows Phone 8");return;
}
try
{var mytile = new IconicTileData
{Title = "iconic tile",
Count = 8,
BackgroundColor = Color.FromArgb(255, 200, 10, 30),
IconImage = new Uri("/Assets/logo202x202.png", UriKind.Relative), SmallIconImage = new Uri("/Assets/logo110x110.png", UriKind.Relative),WideContent1 = "Mangopollo Library",
WideContent2 = "use Windows Phone 8 features",
WideContent3 = "on Windows Phone 7 apPS"
};
#if ALTERNATIVE_SOLUTION
var mytile = Mangopollo.Tiles.TilesCreator.CreateIconicTile("iconic wide tile", 8, Colors.Gray, new Uri("/Assets/logo202x202.png", UriKind.Relative), new Uri("/Assets/logo110x110.png", UriKind.Relative), "Mangopollo Library", "created by", "Rudy Huyn");#endif
ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20wide%20iconic%20tile", UriKind.Relative), mytile, true);}
catch
{ MessageBox.Show("remove tile before create it again");}
}
效果:

创建FlipTile:
private void CreateFlipTile_Click(object sender, RoutedEventArgs e)
{if (!Utils.CanUseLiveTiles)
{ MessageBox.Show("This feature needs Windows Phone 8");return;
}
try
{var mytile = new FlipTileData
{Title = "wide flip tile",
BackTitle = "created by",
BackContent = "Rudy Huyn",
Count = 9,
SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative), BackgroundImage = new Uri("/Assets/Background336x336_1.png", UriKind.Relative), BackBackgroundImage = new Uri("/Assets/Background336x336_2.png", UriKind.Relative)};
#if ALTERNATIVE_SOLUTION
var mytile = Mangopollo.Tiles.TilesCreator.CreateFlipTile("wide flip tile", "created by", "Rudy Huyn", 9, new Uri("/Assets/logo159x159.png", UriKind.Relative), new Uri("/Assets/Background336x336_1.png", UriKind.Relative), new Uri("/Assets/Background336x336_2.png", UriKind.Relative));#endif
ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20flip%20tile", UriKind.Relative), mytile, false);}
catch
{ MessageBox.Show("remove tile before create it again");}
}
private void CreateFlipTileWide_Click(object sender, RoutedEventArgs e)
{if (!Utils.CanUseLiveTiles)
{ MessageBox.Show("This feature needs Windows Phone 8");return;
}
try
{var mytile = new FlipTileData
{Title = "wide flip tile",
BackTitle = "created by",
BackContent = "Rudy Huyn",
Count = 9,
SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative), BackgroundImage = new Uri("/Assets/Background336x336_1.png", UriKind.Relative), BackBackgroundImage = new Uri("/Assets/Background336x336_2.png", UriKind.Relative),WideBackContent = "This is a very long long text to demonstrate the back content of a wide flip tile",
WideBackgroundImage = new Uri("/Assets/Background691x336_1.png", UriKind.Relative), WideBackBackgroundImage = new Uri("/Assets/Background691x336_2.png", UriKind.Relative)};
#if ALTERNATIVE_SOLUTION
var mytile = Mangopollo.Tiles.TilesCreator.CreateFlipTile("flip tile", "created by", "Rudy Huyn", "This is a very long long text to demonstrate the back content of a wide flip tile", 9, new Uri("/Assets/logo159x159.png", UriKind.Relative), new Uri("/Assets/Background336x336_1.png", UriKind.Relative), new Uri("/Assets/Background336x336_2.png", UriKind.Relative), new Uri("/Assets/Background691x336_1.png", UriKind.Relative), new Uri("/Assets/Background691x336_2.png", UriKind.Relative));#endif
ShellTileExt.Create(new Uri("/MainPage.xaml?msg=from%20wipe%20flip%20tile", UriKind.Relative), mytile, true);}
catch
{ MessageBox.Show("remove tile before create it again");}
}
效果:

更新主Tile:
private void UpdateMainTile_Click(object sender, RoutedEventArgs e)
{if (!Utils.CanUseLiveTiles)
{ MessageBox.Show("This feature needs Windows Phone 8");return;
}
var maintile = new FlipTileData
{Title = "main tile",
BackTitle = "this is",
BackContent = "main tile",
Count = 3,
SmallBackgroundImage = new Uri("/Assets/logo159x159.png", UriKind.Relative), BackgroundImage = new Uri("/Assets/Background336x336_2.png", UriKind.Relative), BackBackgroundImage = new Uri("/Assets/Background336x336_1.png", UriKind.Relative),WideBackContent = "This is a very long long text to demonstrate the back content of a wide flip tile",
WideBackgroundImage = new Uri("/Assets/Background691x336_2.png", UriKind.Relative), WideBackBackgroundImage = new Uri("/Assets/Background691x336_1.png", UriKind.Relative)};
#if ALTERNATIVE_SOLUTION
var maintile = Mangopollo.Tiles.TilesCreator.CreateFlipTile("main tile", "This is", "main tile", "This is a very long long text to demonstrate the back content of a wide flip tile", 9, new Uri("/Assets/logo159x159.png", UriKind.Relative), new Uri("/Assets/Background336x336_1.png", UriKind.Relative), new Uri("/Assets/Background336x336_2.png", UriKind.Relative), new Uri("/Assets/Background691x336_1.png", UriKind.Relative), new Uri("/Assets/Background691x336_2.png", UriKind.Relative));#endif
ShellTile.ActiveTiles.First().Update(maintile);
}
效果:


详细可以参见codeplex上的mangopollo的说明:http://www.cnblogs.com/sun8134/



下载 
下载
下载 
下载
下载 
下载
喜欢
顶
难过
囧
围观
无聊


