我有疑问。我有一个电话簿的应用程序。我想创建Tile(在Windows Phone主屏幕中),在我点击主屏幕上的Tile后会调用该号码。
这可能吗?我应该怎么做才能做出类似的事情?我可以创建自定义Tile,也可以在应用程序启动后创建一些方法?
答案 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)
答案 2 :(得分:0)
您还可以使用CodePlex中的Mangopollo库创建辅助实时图块:http://mangopollo.codeplex.com/