2013-04-13 36 views
0

我有問題。我有一個電話簿的應用程序。我想在主屏幕上點擊平鋪後創建Tile(在Windows Phone主屏幕中),這將會調用該數字。WP7中特別開始應用的新瓷磚

這可能嗎?我該怎麼做才能做出這樣的事情?我可以創建自定義Tile或者我應該在應用程序啓動後創建一些方法?

回答

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); 
} 

如果您還沒有這樣做但是,您還需要在WMAppManifest.xml文件中添加"ID_CAP_PHONEDIALER"功能,否則在調用上述task.Show();時會發生異常。

現在你有一個動態磁貼被點擊將啓動應用程序,並撥打該號碼時(用戶仍然必須確認它在一個對話框,雖然,這是你無法禁用)

+0

這就是我應該這樣做的方式。謝謝! – boski

1

你試過翻轉瓷磚和使用這樣的事情:

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

寫入獨立存儲的數量然後當他們點擊你讀的獨立存儲的瓷磚和呼叫的號碼。

+0

它與我的問題有關,所以也請多謝 – boski