共用方式為


適用於行動裝置的相機 UI 功能

本文說明如何利用只存在於行動裝置上的特殊相機 UI 功能。

將行動擴充功能新增至您的專案

若要使用這些功能,您必須將適用於通用應用程式平台的 Microsoft 行動擴充功能的參考新增至您的專案。

新增對行動擴充功能 SDK 的參考以支援硬體相機按鈕

  1. 在 [方案總管] 中,以滑鼠右鍵按一下 [參考],然後選取 [新增參考]

  2. 展開 Windows 通用節點並選取擴充功能

  3. 選取適用於通用應用程式平台的 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;
}