適用於行動裝置的相機 UI 功能
本文說明如何利用只存在於行動裝置上的特殊相機 UI 功能。
將行動擴充功能新增至您的專案
若要使用這些功能,您必須將適用於通用應用程式平台的 Microsoft 行動擴充功能的參考新增至您的專案。
新增對行動擴充功能 SDK 的參考以支援硬體相機按鈕
在 [方案總管] 中,以滑鼠右鍵按一下 [參考],然後選取 [新增參考]。
展開 Windows 通用節點並選取擴充功能。
選取適用於通用應用程式平台的 Microsoft 行動擴充功能 SDK 核取方塊。
隱藏狀態列
行動裝置有一個 StatusBar 控制項,可為使用者提供有關裝置的狀態資訊。 此控制項會佔用畫面上可能會干擾媒體擷取 UI 的空間。 您可以透過呼叫 HideAsync 來隱藏狀態列,但必須從條件區塊內進行此呼叫,在該條件區塊中使用 ApiInformation.IsTypePresent 方法來確定 API 是否可用。 此方法只會在支援狀態列的行動裝置上傳回 true。 當您的應用程式啟動或開始從相機預覽時,您應該隱藏狀態列。
// Hide the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync();
}
當您的應用程式關閉或使用者離開應用程式的媒體擷取頁面時,您可以使該控制項再次顯示。
// Show the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().ShowAsync();
}
使用硬體相機按鈕
有些行動裝置有專用的硬體相機按鈕,有些使用者偏好使用畫面上的控制項。 若要在按下硬體相機按鈕時收到通知,請為 HardwareButtons.CameraPressed 事件註冊一個處理常式。 由於此 API 僅在行動裝置上可用,因此您必須再次使用 IsTypePresent 以確保目前裝置支援該 API,然後再嘗試存取它。
using Windows.Phone.UI.Input;
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
HardwareButtons.CameraPressed += HardwareButtons_CameraPressed;
}
在 CameraPressed 事件的處常式序中,您可以啟動相片擷取。
private async void HardwareButtons_CameraPressed(object sender, CameraEventArgs e)
{
await TakePhotoAsync();
}
當您的應用程式關閉或使用者離開應用程式的媒體擷取頁面時,請取消註冊硬體按鈕處理常式。
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
HardwareButtons.CameraPressed -= HardwareButtons_CameraPressed;
}