Windows Phone 8開發知識筆記
1、Windows Phone 8目前支援3種螢幕解析度,分別是
WVGA 800X480 (15:9)
WXGA 1280X768 (15:9)
720p 1280X720 (16:9)
2、在Windows Phone 8中,當BackgroundAudioPlayer的狀態更改時,可以從PlayStateChangedEventArgs中捕獲有關狀態改變的資訊。
3、要使頁面支援旋轉,要把PhoneApplicationPage的SupportedOrientations屬性改為PortraitOrLandscape,然後可以通過定義OrientationChanged事件來處理佈局。
<phone:PhoneApplicationPage
...
SupportedOrientations="PortraitOrLandscape"
Orientation="Portrait"
OrientationChanged="PhoneApplicationPage_OrientationChanged">
{
MessageBox.Show("螢幕發生旋轉,當前是:" + e.Orientation);
// 如果是橫向的
if (e.Orientation == PageOrientation.Landscape ||
e.Orientation == PageOrientation.LandscapeLeft ||
e.Orientation == PageOrientation.LandscapeRight)
{
Grid.SetColumn(this.img, 0);
Grid.SetRow(this.img, 0);
Grid.SetRow(this.txtBlock, 0);
Grid.SetColumn(this.txtBlock, 1);
}
// 如果是縱向
else if (e.Orientation == PageOrientation.Portrait ||
e.Orientation == PageOrientation.PortraitDown ||
e.Orientation == PageOrientation.PortraitUp)
{
Grid.SetColumn(this.img, 0);
Grid.SetRow(this.img, 0);
Grid.SetRow(this.txtBlock, 1);
Grid.SetColumn(this.txtBlock, 0);
}
else
{
Grid.SetColumn(this.img, 0);
Grid.SetRow(this.img, 0);
Grid.SetRow(this.txtBlock, 1);
Grid.SetColumn(this.txtBlock, 0);
}
}
狀態有PortraitUp、LandscapeLeft、LandscapeRight
4、文字顯示控制元件TextBlock,裡面文字顯示不同顏色,通過<Run Foreground="Red">Windows Phone 8</Run>標籤實現,文字中間換行,使用<LineBreak/> 標記,如下:
<TextBlock x:Name="txtBlock"
FontSize="70"
Margin="28">
<Run Foreground="Coral">Hello Kitty!</Run>
<LineBreak/>
<Run Foreground="Yellow">Windows Phone 8</Run>
<LineBreak/>
<Run Foreground="SkyBlue">WebGIS</Run>
</TextBlock>
5、頁導航
<HyperlinkButton Content="跳到頁面二" Height="78" HorizontalAlignment="Left" Margin="126,86,0,0" Name="hyperlinkButton1" VerticalAlignment="Top" Width="216" FontSize="32" FontStyle="Normal" FontStretch="Normal"
NavigateUri="/pageSecond.xaml"/>
private void button1_Click(object sender, RoutedEventArgs e)
{
this.NavigationService.Navigate(new Uri("/pageSecond.xaml", UriKind.Relative));
}
6、OnNavigatedFrom 方法和OnNavigatedTo 方法。
1)、當使用者即將離開當前頁時,將呼叫OnNavigatedFrom 方法;
2)、當使用者從其它頁面導航到該頁面時呼叫OnNavigatedTo 方法。
// 離開主頁面
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
System.Diagnostics.Debug.WriteLine("***** 已離開主頁面。");
}
// 導航到第二個頁面
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
System.Diagnostics.Debug.WriteLine("***** Hi,已經來到第二個頁面了。");
}
7、頁之間傳遞引數
this.NavigationService.Navigate(new Uri("/pageSecond.xaml?str=" + textBox1.Text, UriKind.Relative));
// 導航到第二個頁面
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
// 傳遞的引數叫什麼名字,這裡就按什麼名字來取。
string pv = this.NavigationContext.QueryString["str"];
this.textBlock1.Text = pv;
}
8、如何遮蔽掉“回退”按鈕?
這種情況下不多見,遮蔽掉回退按鈕意味著無法通過按下“回退”進行向後導航,這個做法要慎用。
要完成該操作,就得處理BackKeyPress事件,把事件引數e的Cancel屬性設定為true即可取消“回退”鍵的操作。
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
base.OnBackKeyPress(e);
e.Cancel = true;
}
9、如何刪除導航歷史記錄?
比如說,我現在從主頁導航到頁面B,再從頁面B導航到頁面C,但我不希望使用者導航回頁面B,而是直接導航回主頁。
我們要在導航的回退歷史記錄中刪除頁面B,所以,我們在離開頁面B後把歷史記錄刪除。也就是說,在頁面B中重寫OnNavigatedFrom方法。
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
PhoneApplicationFrame myFrame = Application.Current.RootVisual as PhoneApplicationFrame;
if (myFrame != null)
{
try
{
myFrame.RemoveBackEntry();
}
catch (InvalidOperationException ex)
{
MessageBox.Show(ex.Message);
}
}
}
從例子中看到,使用PhoneApplicationFrame類的RemoveBackEntry方法刪除最新一條記錄,每次只刪除一條,要刪除多條,就呼叫N次。因為導航歷史記錄是棧結構的,後進先出,所以,就像你拿一堆書放在桌面上一樣,首先拿掉的是放在最上面的,如下圖所示:
10、使用State儲存頁面的暫態資料
在頁面填寫資料的
相關文章
- Windows Phone 8 開發筆記Windows筆記
- Windows Phone 8開發連結Windows
- 【轉】Windows Phone 8 開發環境的搭建Windows開發環境
- Dribbble for windows phone 8Windows
- linux學習筆記8-linux系統io開發知識setsLinux筆記
- windows phone資料庫開發Windows資料庫
- Windows Phone 7 開發 31 日談——第8日:選擇器Windows
- 一起學Windows Phone7開發(十四.一 Phone Task)Windows
- 【使用Unity開發Windows Phone上的2D遊戲】(2)初識工具UnityWindows遊戲
- Windows Phone 7 開發 31 日談——第21日:Silverlight Toolkit for Windows PhoneWindows
- numpy知識點筆記筆記
- SQL SERVER 知識筆記SQLServer筆記
- 生物知識點筆記筆記
- L02 Web 開發實戰筆記(重點知識點)Web筆記
- 知識盲點 隨筆筆記筆記
- Windows Phone SDK 8/8.1 官方下載Windows
- 微軟洩漏Windows Phone 8新特性微軟Windows
- Windows Phone7開發系列視訊地址Windows
- Windows phone應用開發[15]-輔助工具Windows
- ·Windows Phone 7首款機型8月25日開賣Windows
- Redis基礎知識(學習筆記8--Redis命令(1))Redis筆記
- OC 常用知識筆記 (1)筆記
- Windows Phone 8 新增功能:TTS文字朗讀功能 和 語音識別 APIWindowsTTSAPI
- Windows phone應用開發[18]-下拉重新整理Windows
- Windows phone應用開發[19]-RSA資料加密Windows加密
- Windows phone 應用開發[2]-資料快取Windows快取
- Windows phone 應用開發[9]-單元測試Windows
- vueX基礎知識點筆記Vue筆記
- Redis知識點筆記總結Redis筆記
- sql基礎知識(筆記)(一)SQL筆記
- 基礎知識學習筆記筆記
- C/C++【知識點筆記】C++筆記
- 物件與類_知識點筆記物件筆記
- 機器學習學習筆記——基本知識機器學習筆記
- Windows Phone開發之輸入範圍InputScope的使用Windows
- 遊戲開發者:8.8%的開發者為Windows Phone開發遊戲遊戲開發Windows開發遊戲
- iOS開發學習筆記:基礎知識之代理模式之老王的故事iOS筆記模式
- 《Windows Phone 7入門經典之使用Silverlight和XNA開發Windows Phone應用》書評Windows