在Windows 8中的應用程序在默認打開時是全屏的,此時我們如果需要看其他應用程序就只能回到Metro 起 始頁面重新選擇其他程序嗎?這樣就會很麻煩,所以Windows 8應用程序有4種視圖狀態 (ApplicationViewState),類似於普通窗口程序的最小化、最大化一樣可以看到其他應用程序同時允許多個應 用程序的使用。
視圖狀態切換方法:用鼠標點擊屏幕最上方按住不放往右或者往左拖動、移動中間間 隔欄等等。
ApplicationViewState:
// 摘要:
// 當前應用程序的視圖為橫向全屏
FullScreenLandscape = 0,
//
// 摘要:
// 當前應用程序視圖變為大的一部分。
Filled = 1,
//
// 摘要:
// 當前應用程序的視圖變為小的一部分
Snapped = 2,
//
// 摘要:
// 當前應用程序的視圖為縱向全屏
FullScreenPortrait = 3,
查看視圖狀態的代碼:
public MainPage()
{
this.InitializeComponent();
this.SizeChanged += MainPage_SizeChanged;
}
/// <summary>
/// 根據窗口大小變化顯示當前的狀態
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void MainPage_SizeChanged(object sender, SizeChangedEventArgs e)
{
this.tbshow.Text = ApplicationView.Value.ToString();
}
效果圖如下:


在Windows 8中從後台控制鎖屏界面的通知。
首先我們需要設置“Package.appxmanifest ”-->"應用程序UI"-->"鎖定屏幕通知"。

其次設置 “Package.appxmanifest”-->"聲明"-->添加"後台任務" ,並且勾選“推送通知”和設置入口點位項目的MainPage

代碼如下:
/// <summary>
/// 更新鎖屏頁面的通知按鈕
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnUpdateScreen_Click(object sender, RoutedEventArgs e)
{
XmlDocument badgeData = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph);
XmlNodeList badgeXML = badgeData.GetElementsByTagName("badge");
((XmlElement)badgeXML[0]).SetAttribute("value", "alert");
BadgeNotification badge = new BadgeNotification(badgeData);
BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badge);
}
/// <summary>
/// 允許指定應用程序執行後台活動以及在鎖定屏幕上顯示圖塊的能力
/// </summary>
/// <param name="e"></param>
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync();
}
最後得到的效果圖可以通過在Windows 8系統中按Win+L鍵看到。該界面難以截圖故大家如 果敢興趣請下載源碼觀看:http://files.cnblogs.com/chengxingliang/Win8Screen.rar