問題
當您在規劃一個 Xamarin.Forms 的應用程式的時候,都會制訂一套配色規則,並且每個頁面與控制項,都會依照這套視覺設計規範,進行套版設計;可是,當您在 UWP 平台執行這個應用程式時候,卻發現到狀態列的背景與文字顏色似乎沒有地方可以修改,這該如何處理呢?
解答
首先,請在原生 UWP 專案內,加入 擴充功能 的
Windows Desktop Extensions for the UWP
/ Windows Mobile Extensions for the UWP
的參考到您的專案內,如果您的 UWP 應用程式只需要在 Windows 下執行,後者可以不用加入;若您的 UWP 應用程式只需要在手機上執行,前者可以不用加入。
請在原生 UWP 專案內開啟
App.xaml.cs
檔案,將底下程式碼加入到 OnLaunched
方法內。
其中,要使用
ApiInformation.IsTypePresent
來判斷是平板模式還是手機模式,接著取得 Title 列 / 狀態列的物件,將您要設定背景與文字顏色設定到這些物件內即可。//PC 平板模式的 TitleBar 客製化程式碼
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.ApplicationView"))
{
var titleBar = ApplicationView.GetForCurrentView().TitleBar;
if (titleBar != null)
{
titleBar.ButtonBackgroundColor = Colors.DarkBlue;
titleBar.ButtonForegroundColor = Colors.White;
titleBar.BackgroundColor = Colors.Blue;
titleBar.ForegroundColor = Colors.White;
}
}
//Mobile 模式的 Status 客製化程式碼
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
var statusBar = StatusBar.GetForCurrentView();
if (statusBar != null)
{
statusBar.BackgroundOpacity = 1;
statusBar.BackgroundColor = Colors.DarkBlue;
statusBar.ForegroundColor = Colors.White;
}
}