1.Windows Phone 7 中常見的使用WebClient程式碼片段:
WebClient twitter = new WebClient();
twitter.DownloadStringCompleted += new DownloadStringCompletedEventHandler(twitter_DownloadStringCompleted);
twitter.DownloadStringAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + TwitterNameBox.Text));
2. 在Windows Phone 7 程式Deactivated的時候,我們需要處理常式的持久化資料和瞬態資料。
A。將持久化資料儲存到IsolatedStroage
B。在App.xaml.cs的Deactivated事件中處理應用程式瞬態資料,將應用程式瞬態資料儲存至PhoneApplicationService.State中
C。在頁面的OnNavigatedFrom事件中處理頁面瞬態資料,將頁面瞬態資料儲存至PhoneApplicationPage.State中
3. 對於通過WebClient擷取到的XML資料來源 ,我們可以使用Linq To XML 方便操作,擷取其屬性以便綁定
XElement xmlTweets = XElement.Parse(e.Result);
TwitterList.ItemsSource = from tweet in xmlTweets.Descendants("status") select new TwitterItem{message = tweet.Element("text").Value};
4.在使用linq to xml需要注意返回的xml資料有沒有含命名空間
這個是從tweet search wp7 項目中截取的部分返回xml資料,注意是返回xml資料中包含命名空間
則使用linq to xml 處理資料時也需要加上命名空間,tweet search wp7 項目處理代碼如下
如果返回的資料不包含命名空間,如
則處理代碼如下
5. 在Visual Studio 預設並沒有NavigateToEventHandler的快速鍵,我們可以自行定義
選擇功能表列--> 工具---> 選項,找到 鍵盤節點,在搜尋方塊中輸入NavigateToEventHandler,會找到EditorContextMenus.XAMLEditor.NavigateToEventHandler,然後按快速鍵Ctrl+G+T(當然你可以自行定義),點擊Assign
這樣我們就可以使用快速鍵Ctrl+G+T了,就不需要右擊選擇轉到事件處理,其實我們可以看到快速鍵已經添加到右擊選項中了
6. Windows Phone 7 中應用程式設計需要遵循的Three Red Threads: Personal、Relevant、Connected
7. 在Windows Phone7中取得螢幕(轉自http://mxmxm.com)
分享一個取得螢幕的代碼,但是由於程式不能在後台運行,所以只能通過按鈕或者菜單取得,然後把圖片儲存在相簿中。
public void CaptureScreen(object sender, EventArgs e)
{
WriteableBitmap bmp = new WriteableBitmap(480, 800);
bmp.Render(App.Current.RootVisual, null);
bmp.Invalidate();
MemoryStream stream = new MemoryStream();
bmp.SaveJpeg(stream, bmp.PixelWidth, bmp.PixelHeight, 0, 80);
stream.Seek(0, SeekOrigin.Begin);
MediaLibrary library = new MediaLibrary();
string filename = "ScreenShot_" + DateTime.Now.ToString("yyyy-MM-dd_hh:mm:ss");
library.SavePicture(filename, stream);
stream.Close();
}
8. 讓我們的phone 7 震動
VibrateController vib = VibrateController.Default;
vib.Start(TimeSpan.FromMilliseconds(100));
9. WPF的資源的資源套件括靜態資源(StaticResource)和動態資源(DynamicResource),他們之間的區別是:
靜態資源在第一次編譯後即確定其對象或值,之後不能對其進行修改。動態資源則是在運行時決定,當運行過程中真正需要時,才到資源目標中尋找其值。
10. 在windows phone 7中我們只需關注靜態資源(StaticResource)