在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