在WP7中具有特殊应用开始的新Tile

时间:2013-04-13 11:40:21

标签: windows-phone-7 windows-phone live-tile

我有疑问。我有一个电话簿的应用程序。我想创建Tile(在Windows Phone主屏幕中),在我点击主屏幕上的Tile后会调用该号码。

这可能吗?我应该怎么做才能做出类似的事情?我可以创建自定义Tile,也可以在应用程序启动后创建一些方法?

3 个答案:

答案 0 :(得分:3)

使用以下代码创建实时图块:

string number = "000 - 000 000";
ShellTile tile = ShellTile.ActiveTiles.FirstOrDefault(t => t.NavigationUri.ToString().Contains("phone=" + number));

if (tile == null)
{
   StandardTileData tileData = new StandardTileData();
   tileData.Title = "Call " + number;
   ShellTile.Create(new Uri("/MainPage.xaml?phone=" + number, UriKind.Relative), tileData);
}

然后覆盖MainPage.xaml中的OnNavigatedTo,并添加以下代码:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
   if (NavigationContext.QueryString.ContainsKey("phone"))
   {
       string number = NavigationContext.QueryString["phone"];
       PhoneCallTask task = new PhoneCallTask();
       task.PhoneNumber = number;
       task.Show();
    }
    base.OnNavigatedTo(e);
}

如果您还没有完成,还需要在"ID_CAP_PHONEDIALER"文件中添加WMAppManifest.xml功能,否则在上面调用task.Show();时会出现异常。

现在你有了一个实时磁贴,点击后会启动应用程序并调用该编号(用户必须仍然在对话框中确认它,这是你无法禁用的)

答案 1 :(得分:1)

您是否尝试过翻转瓷砖并使用以下内容:

http://blog.ecofic.com/?p=406

将号码写入隔离存储,然后当他们点击您阅读隔离存储的磁贴并拨打该号码时。

答案 2 :(得分:0)

您还可以使用CodePlex中的Mangopollo库创建辅助实时图块:http://mangopollo.codeplex.com/