如何固定联系人磁贴以从应用程序启动?

时间:2014-01-12 03:31:43

标签: c# visual-studio-2012 windows-phone-8 windows-phone-8-emulator

我的应用程序中有一个用于拨打号码的联系人。现在,我想将其固定到Windows的起始页面,我正在使用以下代码实现此功能:

private void Click_Tap(object sender, RoutedEventArgs e)
    {
        ShellTile oTile = ShellTile.ActiveTiles.FirstOrDefault(x =>               
        x.NavigationUri.ToString().Contains("flip".ToString()));

        if (oTile != null && oTile.NavigationUri.ToString().Contains("flip"))
        {
            FlipTileData oFliptile = new FlipTileData();
            oFliptile.Title = "Hello WP8!!";
            oFliptile.Count = 11;
            oFliptile.BackTitle = "Updated Flip Tile";

            oFliptile.BackContent = "back of tile";
            oFliptile.WideBackContent = "back of the wide tile";

            oFliptile.SmallBackgroundImage = new Uri("Assets/Tiles/Flip/h.jpg", UriKind.Relative);
            oFliptile.BackgroundImage = new Uri("Assets/Tiles/Flip/h.jpg", UriKind.Relative);
            oFliptile.WideBackgroundImage = new Uri("Assets/Tiles/Flip/h.jpg", UriKind.Relative);
            oFliptile.BackBackgroundImage = new Uri("/Assets/Tiles/Flip/h.jpg", UriKind.Relative);
            oFliptile.WideBackBackgroundImage = new Uri("/Assets/Tiles/Flip/h.jpg", UriKind.Relative);
            oTile.Update(oFliptile);
            MessageBox.Show("Flip Tile Data successfully update.");
        }
        else
        {

            Uri tileUri = new Uri("/phoneNumberChooserTask.show()?tile=flip", UriKind.Relative);
            ShellTileData tileData = this.CreateFlipTileData();
            ShellTile.Create(tileUri, tileData, true);
        }
    }

    private ShellTileData CreateFlipTileData()
        return new FlipTileData()
        {
            Title = "",
            BackTitle = "",
            BackContent = "",
            WideBackContent = "",
            Count = 8,
           SmallBackgroundImage = new Uri("/Assets/Tiles/Flip/h.jpg", UriKind.Relative),
            BackgroundImage = new Uri("/Assets/Tiles/Flip/h.jpg", UriKind.Relative),
            WideBackgroundImage = new Uri("/Assets/Tiles/Flip/h.jpg", UriKind.Relative),
        };
    }

我面临的问题是当我在设备/模拟器上运行时,Tile会启动引脚,但是当我点击设备/模拟器调试器的开始屏幕上的磁贴时,会停止进程并且进程会中断。

有人能引导我朝正确的方向前进吗?

1 个答案:

答案 0 :(得分:0)

除了您的应用外,平铺无法启动任何内容。添加一些将由您的应用解析的代码,然后您的应用应该调用phoneNumberChooserTask.show()。例如:

new Uri("/Chooser.xaml?tile=flip", UriKind.Relative);

然后,在Chooser.xaml(项目中的页面)中,在OnNavigatedTo中检测Uri中的标题值并调用phoneNumberChooserTask.show()