當我們手機方向發生改變時,其實觸發了一些事件的發生,其中PhoneApplicationFrame和PhoneApplicationPage都包含了OritentationChanged事件。PhoneApplicationPage還另外補充了一個方便的等價方法OnOritentationChanged,該虛方法是protected而且是可重寫的。下面的樣本示範了如何在項目中重寫OnOritentationChanged方法,且將當前手機的方向顯示在一個TextBlock中。
XAML代碼:
<Grid x:Name="LayoutRoot" Background="Transparent">
<TextBlock Name="txtblk" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
C#代碼:
public partial class MainPage : PhoneApplicationPage
{
// 建構函式
public MainPage()
{
InitializeComponent();
txtblk.Text = this.Orientation.ToString();//擷取當前頁面的Orientation屬性的值
}
protected override void OnOrientationChanged(OrientationChangedEventArgs e)//重寫基類PhoneApplicationPage的虛方法OnOrientationChanged
{
txtblk.Text = e.Orientation.ToString();//取得方向改變後屬性Orientation的新值
base.OnOrientationChanged(e);//調用基類的OnOrientationChanged方法
}
}
效果
豎直方向 水平方向
以上樣本說明了修改應用程式的方向不僅可以通過XAML代碼中的SupportedOrientations屬性完成,也可以通過C#代碼修改頁面的Oritentation來完成。而且當手機方向發生改變時,程式會相應地觸發OrientationChanged事件,我們可以通過這一事件處理一些事情。