在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鍵看到。該介面難以故大家如果敢興趣請下載Win8Screen.rar源碼觀看。