Style的用法
首先在XAML裡定義,作為資源字典的一部分:
<!-- Add one item to the page's resource dictionary -->
<phone:PhoneApplicationPage.Resources>
<!-- A style for the two text blocks in WaitingForCallPanel -->
<Style x:Key="WaitingTextStyle" TargetType="TextBlock">
<Setter Property="Foreground" Value="#99FFFFFF"/>
<Setter Property="FontFamily"
Value="{StaticResource PhoneFontFamilySemiBold}"/>
<Setter Property="FontSize" Value="23"/>
</Style>
</phone:PhoneApplicationPage.Resources>
就可以直接在XAML中引用了:
<TextBlock x:Name="TapToHideTextBlock" Margin="11,0,0,0" Text="(tap screen to hide)" Style="{StaticResource WaitingTextStyle}"/>
注意,Style中不支援動態綁定,向下面這樣是不行的:
App的生命週期
app退出的兩種狀態:closed和deactived(deactived也稱作tombstoned)
開啟closed的程式,則程式重新初始化。
開啟deactived的程式,則程式繼續執行。
變為closed的唯一方法:在程式初始頁面點back按鈕。也正因為這一點,其他退出程式的方式都應該是deactive,也就是在back stack裡能找得回來。
Deactived的程式不保證能再次active,因為記憶體不足或者關機的原因。
通過觸摸表徵圖開啟程式(無論該程式之前是否被開啟),都是launch而不是active。重新開啟後,會使得之前在back stack中的該程式頁面被刪除。
Obscured和Unobscured事件
當有來電、接到toast通知、或鎖屏的時候,會觸發Obsured事件,如果使用者接起電話切出當前程式,則觸發Deactived事件。
一個Obscured的handler無法知道是具體什麼原因造成的,唯一能知道的是是否由鎖屏導致,方法是查看事件參數的IsLocked屬性。
在App.xmal裡指定事件handler
<Application.ApplicationLifetimeObjects> <!--Required object that handles lifetime events for the application--> <shell:PhoneApplicationService Launching="Application_Launching" Closing="Application_Closing" Activated="Application_Activated" Deactivated="Application_Deactivated"/> </Application.ApplicationLifetimeObjects>
Application state 和 Page state
要永久儲存狀態,用isolated storage,要暫時儲存狀態則用兩個dictionary:application state和page state。
程式在actived之後,仍然可以存取剛才儲存在application state和page state中的變數。注意,無論是close掉還是重新launch,都會清空。
這些臨時性的state可以用來當緩衝,例如存放從網路擷取到的資料(actived回來就不必再重新擷取了),再如DataContext也可以作為state字典的一個entry。
一般地,我們在OnNavigatedTo中決定從哪裡讀取,在OnNavigatedFrom決定存到哪裡。
要保證deactived handler中所做的事情包含了closing handler所做的事情,因為如果在closing的時候要儲存資料,那麼在deactived的時候也需要儲存。因為程式如何關閉取決於使用者的行為,不能保證closing事件必定被觸發。
ControlTemplate
每個控制項(Control)都有一個Template屬性,其類型叫做ControlTemplate。其作用是改變控制項的樣式。
在自訂樣式的同時,依然需要控制項的其他屬性,這需要TemplateBinding。這塊內容比較龐大,具體用法可參加:
http://www.cnblogs.com/zhouyinhui/archive/2007/03/28/690993.html