XAML in Xamarin.Forms 基礎篇 電子書

XAML in Xamarin.Forms 基礎篇 電子書
XAML in Xamarin.Forms 基礎篇 電子書

Xamarin.Forms 快速入門 電子書

Xamarin.Forms 快速入門 電子書
Xamarin.Forms 快速入門 電子書
顯示具有 Prism 標籤的文章。 顯示所有文章
顯示具有 Prism 標籤的文章。 顯示所有文章

2019/04/08

Visual Studio 2019 for Xamarin 之安裝與設定 Part1 - 安裝前的準備工作


Visual Studio 2019 for Xamarin 之安裝與設定 Part1 - 安裝前的準備工作

Visual Studio 2019 for Xamarin 之安裝與設定 Part1 - 安裝前的準備工作
Visual Studio 2019 for Xamarin 之安裝與設定 Part2 - Visual Studio 2019 安裝與相關相關設定 1
Visual Studio 2019 for Xamarin 之安裝與設定 Part3 - Visual Studio 2019 安裝與相關相關設定 2
Visual Studio 2019 for Xamarin 之安裝與設定 Part4 - 安裝 Android 使用的模擬器
Visual Studio 2019 for Xamarin 之安裝與設定 Part5 - 測試與確認開發環境可以進行 Xamarin.Forms 專案開發與結論

對於已經具備擁有 .NET / C# 開發技能的開發者,可以使用 Xamarin.Forms Toolkit 開發工具,便可以立即開發出可以在 Android / iOS 平台上執行的 App;對於要學習如何使用 Xamarin.Forms & XAML 技能,現在已經推出兩本電子書來幫助大家學這這個開發技術。
這兩本電子書內包含了豐富的逐步開發教學內容與相關觀念、各種練習範例,歡迎各位購買。
Xamarin.Forms 電子書
想要購買 Xamarin.Forms 快速上手 電子書,請點選 這裡

想要購買 XAML in Xamarin.Forms 基礎篇 電子書,請點選 這裡


了解更多關於 [Xamarin.Android] 的使用方式
了解更多關於 [Xamarin.iOS] 的使用方式
了解更多關於 [Xamarin.Forms] 的使用方式
了解更多關於 [Hello, Android:快速入門] 的使用方式
了解更多關於 [Hello, iOS – 快速入門] 的使用方式

了解更多關於 [Xamarin.Forms 快速入門] 的使用方式



對於要使用 Xamarin.Forms 跨平台開發工具來進行行動裝置應用程式開發,首先要先進行 Xamarin 開發環境的安裝與設定,在這裡將會分成 4 部分來說明,而這裡將會使用 Visual Studio 2019 社群版本作為安裝過程的說明。在此將會假設開發者主要在 Windows 作業系統下使用 Visual Studio 2019 for Windows 來進行開發、設計、建置、除錯 Xamarin.Forms 的專案,而 Mac 電腦上的 Visaul Studio 2019 for Mac 其存在的目的只是要能夠產生出 Xamarin.iOS 的專案檔案而已,通常,是不會使用 Visual Studio for Mac 來進行 Xamarin.Forms 開發作業。
  • 安裝前的準備工作
    這裡將會說明當準備要進行安裝 Visual Studio 2019 for Xamarin.Forms 開發環境之前,需要確認與準備工作有那些,這裡的內容相當重要,因為,若電腦環境一旦規格不符合需求,整個安裝與設定過程,將會產生問題,也會造成某些功能無法使用。
  • Visual Studio 2019 安裝與相關相關設定
    在這裡,將會帶領大家,一步一步地在 Windows 作業系統下進行 Visual Studio 2019 開發工具的安裝,並且在 Visual Studio 2019 安裝完成之後,接下來該如何進行 Xamarin 開發環境的設定。另外,也會說明在 Mac 電腦上要如何安裝 Xcode 與 Visual Studio 2019 for Mac 這兩個開發工具。
  • 安裝 Android 使用的模擬器
    透過這裡的說明,可以進行安裝設定 Google Android 原生模擬器,方便進行 Android 應用程式的開發與測試,當然,要使用哪種類型的模擬器,可以依照開發者的喜好來決定。
  • 確認開發環境可以進行 Xamarin.Forms 專案開發
    最後,這也是最為重要的,在安裝與設定工作都完成之後,需要開始進行檢查與確認電腦環境是否可以真的進行 Xamarin 跨平台應用程式的開發,因此,一定要依據這裡說明內容,逐一進行檢測,確認開發環境都正確無誤並且可以運作正常。

安裝前的準備工作

在進行 Visual Studio 2019 開發工具安裝之前,請務必要進行底下說明的各個檢查與準備工作,否則,在進行安裝 Visual Studio 2019 與 Xamarin 開發工具的時候,可能會發生莫名的異常問題。
這裡需要的工作有
  • 確認作業系統版本
  • 確認硬體 BIOS 有啟用虛擬化功能
  • 同時啟用 Hyper-V 和 Windows Hypervisor 平台
  • 啟用 UWP 開發人員模式
  • 準備一台 macOS 的電腦主機

確認作業系統版本

以下說明內容將會使用的 Windows 10 專業版本作業系統,原則上,建議您使用當前最新的 Windows 10 作業系統的最新版本來安裝,若電腦不是這個版本,請使用 Windows Update 進行更新到組建版本。
欲檢查您的 Windows 10 作業系統版本,請點選左下角的視窗圖示,接著點選左下方的 設定 齒輪圖示,或者點選右下方通知圖示,選取齒輪圖示的設定按鈕
使用開始圖示來開啟 Windows 設定視窗
使用通知設定視窗來開啟 Windows 設定視窗
當進入到 設定 視窗之後,點選上方的 系統 圖示
在 Windows 設定窗內開啟系統功能視窗
緊接著在左邊的最下方選項,點選 關於 項目,就會看到視窗右邊出現的內容,請在視窗右邊區域,使用滑鼠往下捲動,就會查看到 Windows 規格 區域,確認您使用作業系統版本至少為 Windows 10 專業版與 組件 1809
Windows Setting 設定

確認硬體 BIOS 有啟用虛擬化功能

因為絕大多數的 Android 模擬器都會使用虛擬化技術,因此,,Windows 電腦 CPU 需要具備支援虛擬化的功能,若想要啟用電腦支援虛擬化功能,請確認 CPU 有支援此一功能,並且從 BIOS 啟用此功能。這個影片 how to enable hyper-v machine in BIOS 將會展示如何設定 BIOS 可以使用虛擬化的功能。若電腦 BIOS 上沒有啟動此功能 Intel Virtual Technology 或者電腦的 BIOS 根本就沒有這項設定,建議使用實體手機來進行 Android 專案的開發與設計。
原則上不同的虛擬化產品是無法混合一起使用的,例如 Hyper-V 無法與其他的虛擬化產品 Intel HAXM或 VMware 等等,共同使用,您只能夠選擇其一來使用。
在這篇文章中將不會採用 Hyper-V 虛擬化技術,而會採用 Intel HAXM 虛擬化技術,對於 Android 模擬器部分,將會使用 [Android Emulator] 這個模擬器軟體。

停用 Hyper-V

若想要使用 Intel HAXM 虛擬化技術,進而直接使用 Android 原生地 x86 模擬器,需要先將這台電腦上的 Hyper-V 和 Windows Hypervisor 平台 這兩項功能移除與停用;在這台電腦中,已經有安裝這兩個服務,所以需要先進行移除,若電腦中並沒有安裝這兩個服務,可以直接進行下一個步驟。
  • 首先,依據上面的操作步驟,開啟 Windows 設定視窗 (請點選左下角的視窗圖示,接著點選左下方的 設定 齒輪圖示,或者點選右下方通知圖示,接著選取齒輪圖示的設定按鈕)
Windows 設定視窗
  • 點選 應用程式 項目,將會出現下圖 應用程式與功能視窗 畫面
應用程式與功能視窗
  • 在 應用程式 畫面右方,點選 相關設定的 程式和功能 項目
程式和功能視窗
  • 當 程式和功能 視窗開啟之後,點選該視窗左方的 開啟或關閉 Windows 功能
Windows 功能之設定視窗
  • 現在,將會看到 [Windows 功能] 視窗出現在電腦上,請在下方的清單項目,找到 Hyper-V 與 Windows Hypervisor Platform 這兩個選項,請記得要取消勾選這兩個項目與其子項目,完成後請點選 確定 按鈕。
取消選擇安裝 Hyper-V 的所有功能
取消選擇安裝與啟用 Windows Hypervisor Platform
  • 現在,Windows 將會開始安裝這兩個功能,請點選 確定 按鈕。
Windows 正在進行套用變更
  • 當這兩個 Windows 功能移除這兩個服務之後,需要重新啟動作業系統,請點選 立即重新啟動 按鈕。
Windows 已完成要求的變更

啟用 UWP 開發人員模式

若想要使用 Xamarin.Forms 建立出可以同時在 Android / iOS / UWP 系統下執行的跨平台 App,就需要參考底下的步驟,先進行 UWP 開發人員模式的啟用
  • 首先,還是一樣需要進入到 Windows 設定 (請點選左下角的視窗圖示,接著點選左下方的 設定 齒輪圖示,或者點選右下方通知圖示,接著選取齒輪圖示的設定按鈕)
Windows Setting 設定
  • 請點選 更新與安全性 選項,並且點選 更新與安全性 視窗左方的 開發人員專用 選項
開發人員專用設定視窗
  • 請點選右方內容的 開發人員模式 選項,現在顯示出 使用開發人員功能 對話窗,並且說明:開啟開發人員模式 (包括安裝及執行不是來自於 Microsoft Store 的應用程式) 可能造成您裝置與個人資料的安全性風險或危害您的裝置。 開啟開發人員模式?請點選 是 按鈕。
開啟開發人員模式
  • 若 開發人員模式 已經開啟之後,可以看到如同下圖畫面,在開發人員模式選下的下方,會顯示出:已安裝「開發人員模式」套件,現已啟用適用於桌面的遠端工具 訊息。
已安裝「開發人員模式」套件

準備一台 macOS 的電腦主機

由於 Apple 公司的規定,當要進行 iOS 應用程式開發的時候,必須要透過一台有安裝 macOS 的蘋果硬體電腦來進行,因此,對於想要產生與進行 iOS 應用程式除錯的開發者,就需要準備一台 macOS 電腦主機。
對於這台 macOS 電腦建議要將作業系統升級到最新版本,以便符合 Xcode 開發工具的安裝要求,除了會安裝 Xcode 到這台電腦上,也會進行安裝 Visual Studio 2019 for Mac 工具。


了解更多關於 [Xamarin.Android] 的使用方式
了解更多關於 [Xamarin.iOS] 的使用方式
了解更多關於 [Xamarin.Forms] 的使用方式
了解更多關於 [Hello, Android:快速入門] 的使用方式
了解更多關於 [Hello, iOS – 快速入門] 的使用方式
了解更多關於 [Xamarin.Forms 快速入門] 的使用方式



2018/02/20

Xamarin.Forms 的頁面導航Page Navigation 之有無強制回應Modal 對話窗和導航工具列NavigationPage 的體驗

體驗不同頁面導航的效果

在我們進行Xamarin.Forms 跨平台行動專案開發的時候,原則上,我們會建立與設計許多不同的頁面,這些頁面將會使用XAML 宣告標記語言來定義出來,並且該頁面的商業處理邏輯,我們則可以使用Code-Behind 或者MVVM 的方式,將C# 程式碼撰寫在Code-Behind 檔案或者是ViewModel 檢視模型檔案內;一旦完成這些頁面與商業邏輯程式碼的開發,我們就需要使用Xamarin.Forms 提供的頁面導航Page Navigation 機制,根據使用者的需求,切換到不同頁面下,讓使用者可以根據頁面顯示內容來進行操作。
在Xamarin.Forms 中,我們通常都會透過導航頁面NavigationPage 與導航抽屜頁面MasterDetailPage 來提供這樣的使用者體驗;而在使用Prism Framwork 開發框架下,Prism 提供了導航服務物件,您可以在頁面的檢視模型ViewModel下,使用相依性注入Dependency Injection 機制,使用建構式註入方法來取得這個導航服務物件;一旦,您取得了這個物件,便可以依據使用者的需求,進行Xamarin.Forms 應用程式App 的頁面切換行為。
接下來,讓我們來進行各種不同頁面導航情境的測試。

建立要測試的Xamarin.Forms 方案與專案

請打開您的Visual Studio 2017,並且使用已經安裝好的Prism Template Pack 擴充功能所提供的Xamarin.Forms 專案樣板,幫助我們來建立一個跨平台的Xamarin.Forms 專案;一旦您完成這樣的工作,您將會得到一個方案,裡面有四個專案,其中一個是.NET Standard 標準類別庫專案,這個專案將會被另外三個專案參考引用,我們所有的Xamarin.Forms 應用程式開發工作,都會在這個專案中完成;另外三個則分別是Android / iOS / UWP 的原生專案,這三個專案將會幫助我們產生出Android / iOS / UWP 的應用程式。

建立需要用到的頁面

現在,使用滑鼠右擊Views 資料夾,選擇新增項目,接著點選對話窗左邊的Prism 項目,並且依序建立出底下需要用到的頁面
  • MDPage
    請點選Prism MasterDetailPage (Xamarin.Forms) 來建立這個導航抽屜頁面
  • HomePage
    請點選Prism ContentPage (Xamarin.Forms) 來建立這個首頁頁面
  • Page1Page / Page2Page / Page3Page
    請點選Prism ContentPage (Xamarin.Forms) 來建立這些頁面,每個頁面將會設定不同頁面名稱與背景顏色,這樣,到時候執行起來的話,便可以做出區隔,知道現在是導航到哪個頁面上了。
底下的XAML 則是HomePage 這個頁面的宣告內容
XAML Code
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             prism:ViewModelLocator.AutowireViewModel="True"
             x:Class="XFNaviModal.Views.HomePage"
             Title="強制回應對話窗測試">

    <StackLayout
        HorizontalOptions="Center" VerticalOptions="Center"
        Orientation="Vertical">
        <Button
            Text="導航到下一頁(無強制回應)"
            Command="{Binding GoPage1Command}"/>
        <Button
            Text="導航到下兩頁(無強制回應)"
            Command="{Binding GoPage2Command}"/>
        <Button
            Text="導航到下一頁(有強制回應)"
            Command="{Binding GoPage1ModalCommand}"/>
        <Button
            Text="導航到下兩頁(有強制回應)"
            Command="{Binding GoPage2ModalCommand}"/>
        <Button
            Text="導航到下一頁(有強制回應且有導航頁面)"
            Command="{Binding GoPage1NaviCommand}"/>
        <Button
            Text="導航到下兩頁(有強制回應且有導航頁面)"
            Command="{Binding GoPage2NaviCommand}"/>
    </StackLayout>
</ContentPage>

設定Xamarin.Forms 專案的起始頁面

請在.NET Standard 專案中,找到App.xaml.cs 這個項目,並且打開這個節點,找到OnInitialized 這個方法,修正裡面的程式碼為底下內容;在這裡,我們將指定了這個Xamarin.Forms 專案的第一個顯示的畫面將會是一個導航抽屜頁面,而該導航抽屜頁面裡面則是由一個導航頁面與一個ContentPage 所組成。
c# code
protected override async void OnInitialized()
{
    InitializeComponent();

    await NavigationService.NavigateAsync("MDPage/NavigationPage/HomePage");
}

執行與檢視這個Xamarin.Forms 專案

現在,請切換Visual Studio 2017 的預設起始專案為Android,並且建置看看這個Android 專案,看看是否可以建置成功;一旦沒有發現錯誤,我們將可以開始執行這個專案,此時,您將會看到底下螢幕截圖出現在您的模擬器或者是手機上。
Xamarin.Forms 強制對話窗的起始畫面

準備進行頁面導航的測試

在這個測試情境中,我們分別做出三種頁面導航技巧,接著,來看看他們之間的不同,並且,也觀看和了解如何依序導航到新頁面與如何返回到就頁面上。
  • 使用非強制回應Modal 對話窗的頁面導航
    首先﹐我們先要來進行這樣非強制回應Modal 對話窗的頁面導航的測試,我們將會使用首頁頁面上的前兩個按鈕,這兩個按鈕的相對應檢視模型ViewModel 中的C# 程式碼,分別如下:
c# code
GoPage1Command = new DelegateCommand(async () =>
{
    await _navigationService.NavigateAsync("Page1Page");
});
GoPage2Command = new DelegateCommand(async () =>
{
    await _navigationService.NavigateAsync("Page1Page/Page2Page");
});
當按下了導航到下一頁(無強制回應) 這個按鈕,將會執行上述第一個按鈕命令的程式碼,此時,行動裝置上將會出現如下圖的畫面,這表示了Xamarin.Forms成功的幫我們導航到了Page1 這個頁面,而且也看到了這個頁面的名稱Title,另外,我們也看到了螢幕左上方也出現了回上頁的系統按鈕。
深度思考 想看看
當您在這個頁面的時候,請嘗試使用手勢操作,從螢幕的最左方往右滑動,看看能否將導航抽屜面板推出來。
若我們使用裝置的實體回上頁按鈕或者螢幕左上方的回上頁按鈕,都會讓我們回到了HomePage 這個頁面上。
導航到下一頁(無強制回應)
現在,讓我們點選第二個按鈕,也就是導航到下兩頁(無強制回應) 這個按鈕,將會執行上述第二個按鈕命令的程式碼,此時,行動裝置上將會出現如下圖的畫面,這表示了Xamarin.Forms 成功的幫我們導航到了Page2 這個頁面,而且也看到了這個頁面的名稱Title,另外,我們也看到了螢幕左上方也出現了回上頁的系統按鈕。
導航到下兩頁(無強制回應)
若我們使用裝置的實體回上頁按鈕或者螢幕左上方的回上頁按鈕,都會讓我們回到了Page1Page 這個頁面上,這樣的結果符合我們的預期並且也是我們通常在Xamarin.Forms 專案中所做的頁面導航技巧。
導航到下一頁(無強制回應) 回上頁結果
最後,我們在Page1 這個頁面中,點選回上頁按鈕,我們將又回到了首頁頁面。
Xamarin.Forms 強制對話窗的起始畫面
  • 使用強制回應Modal 對話窗的頁面導航
    接下來﹐我們先要來進行強制回應Modal 對話窗的頁面導航的測試,我們將會使用首頁頁面上的中間兩個按鈕,也就是第三個與第四個按鈕,這兩個按鈕的相對應檢視模型ViewModel 中的C# 程式碼,分別如下:
    若想要使用強制回應Modal 對話窗功能,您需要在_navigationService.NavigateAsync 方法的第三個參數,輸入true 的引數,這樣,這次的頁面導航動作,將會採用強制回應對話窗的導航功能。
c# code
GoPage1ModalCommand = new DelegateCommand(async () =>
{
    await _navigationService.NavigateAsync("Page1Page", null, true);
});
GoPage2ModalCommand = new DelegateCommand(async () =>
{
    await _navigationService.NavigateAsync("Page1Page/Page2Page", null, true);
});
當按下了導航到下一頁(有強制回應) 這個按鈕,將會執行上述第一個按鈕命令的程式碼,此時,行動裝置上將會出現如下圖的畫面,這表示了Xamarin.Forms成功的幫我們導航到了Page1 這個頁面,此時,我們將無法看到頁面上的頁面的名稱Title,而且,在螢幕左上方也出現了回上頁的系統按鈕。
深度思考 想看看
當您在這個頁面的時候,請嘗試使用手勢操作,從螢幕的最左方往右滑動,看看能否將導航抽屜面板推出來。
若我們使用裝置的實體回上頁按鈕,會讓我們回到了HomePage 這個頁面上。
這樣的情境應用對於有些情況下,我們需要用到全螢幕的畫面,自行來定義這個頁面的相關視覺內容,是相當實用的,因為,在這裡,我們將再也看不到了導航工具列的出現,因此,對於您想要在導航工具列上做出不同的客製化應用,您就可以自行在這個ContentPage 上,使用相關控制項做出屬於您自己的導航工具列按鈕、圖示、提醒徽章、甚至圖片。
警告 警告
不過,在使用這樣的應用情境下,您需要別的注意,在這個頁面上,您沒有左上角的回上頁按鈕可以使用,若當時您的行動裝置平台是iOS 的iPhone 或者iPad 這樣的裝置,由於iOS 的裝置是沒有回上頁的實體按鈕,因此,您需要在這個頁面中,特別設計可以回上頁的按鈕或者手勢操作控制項,否則,使用者是無法回到上頁頁面中。
導航到下一頁(有強制回應)
現在,讓我們點選第二個按鈕,也就是導航到下兩頁(有強制回應) 這個按鈕,將會執行上述第二個按鈕命令的程式碼,此時,行動裝置上將會出現如下圖的畫面,這表示了Xamarin.Forms 成功的幫我們導航到了Page2 這個頁面,此時,同樣的,我們將無法看到頁面上的頁面的名稱Title,而且,在螢幕左上方也出現了回上頁的系統按鈕。
導航到下兩頁(有強制回應)
若我們使用裝置的實體回上頁按鈕,會讓我們回到了Page1Page 這個頁面上,這樣的結果符合我們的預期並且也是我們通常在Xamarin.Forms 專案中所做的頁面導航技巧。
警告 警告
不過,在使用這樣的應用情境下,您需要別的注意,在這個頁面上,您沒有左上角的回上頁按鈕可以使用,若當時您的行動裝置平台是iOS 的iPhone 或者iPad 這樣的裝置,由於iOS 的裝置是沒有回上頁的實體按鈕,因此,您需要在這個頁面中,特別設計可以回上頁的按鈕或者手勢操作控制項,否則,使用者是無法回到上頁頁面中。
導航到下一頁(有強制回應)
最後,我們在Page1 這個頁面中,使用裝置的實體回上頁按鈕,我們將又回到了首頁頁面。
Xamarin.Forms 強制對話窗的起始畫面
  • 使用有強制回應且有導航頁面NavigationPage 的頁面導航方法
    最後﹐我們先要來進行有強制回應且有導航頁面NavigationPage 的頁面導航的測試,我們將會使用首頁頁面上的最後兩個按鈕,這兩個按鈕的相對應檢視模型ViewModel 中的C# 程式碼,分別如下:
    在這樣的導航方式中,我們將會在要導航頁面路徑中,加入了導航頁面NavigationPage 這個頁面,讓我們來看看,會產生甚麼令人驚奇的效果。
c# code
GoPage1NaviCommand = new DelegateCommand(async () =>
{
    await _navigationService.NavigateAsync("NavigationPage/Page1Page", null, true);
});
GoPage2NaviCommand = new DelegateCommand(async () =>
{
    await _navigationService.NavigateAsync("NavigationPage/Page1Page/Page2Page", null, true);
});
當按下了導航到下一頁(有強制回應且有導航頁面) 這個按鈕,將會執行上述第一個按鈕命令的程式碼,此時,行動裝置上將會出現如下圖的畫面,這表示了Xamarin.Forms 成功的幫我們導航到了Page1 這個頁面,而且也看到了這個頁面的名稱Title,另外,不過,我們無法看到了螢幕左上方回上頁的系統按鈕的出現。
深度思考 想看看
當您在這個頁面的時候,請嘗試使用手勢操作,從螢幕的最左方往右滑動,看看能否將導航抽屜面板推出來。
我們可以看得出來,現在這個頁面是個具有導航工具列的起始頁面,原先最初我們設定的導航抽屜之漢堡按鈕也不見了,當然,在這個頁面中,您也無法使用手勢操作,有左往右滑動,推出抽屜面板,因此,我們可以把它當作全新的導航起始點。
若想要回到上頁頁面,我們需要裝置的實體回上頁按鈕,因為,此時螢幕左上方的回上頁按鈕已經不見了,這樣才能夠會讓我們回到了HomePage 這個頁面上。因此,我們需要在這個頁面上,設定一個UI,可以讓使用者來點選,讓這個應用程式可以回到最初的首頁頁面。
導航到下一頁(有強制回應且有導航頁面)
現在,讓我們點選第二個按鈕,也就是導航到下兩頁(有強制回應且有導航頁面) 這個按鈕,將會執行上述第二個按鈕命令的程式碼,此時,行動裝置上將會出現如下圖的畫面,這表示了Xamarin.Forms 成功的幫我們導航到了Page2 這個頁面,而且也看到了這個頁面的名稱Title,另外,我們也看到了螢幕左上方也出現了回上頁的系統按鈕。
導航到下兩頁(有強制回應且有導航頁面)
這樣的結果好像我們在使用非強制回應Modal 對話窗的頁面導航測試階段中看到的結果,可是,若我們使用裝置的實體回上頁按鈕或者螢幕左上方的回上頁按鈕,都會讓我們回到了Page1Page 這個頁面上;在這裡,我們看到的Page1 頁面,是沒有左上角的回上頁按鈕,僅有顯示頁面名稱的導航工具列出現。
導航到下一頁(有強制回應且有導航頁面)
最後,我們在Page1 這個頁面中,使用裝置的實體回上頁按鈕,我們將又回到了首頁頁面。
Xamarin.Forms 強制對話窗的起始畫面

延伸閱讀

結論

現在在Prism Template Pack 2.0.8 與Prism Library 7.0 的加持下,我們可以設計出更加多元與變化之頁面導航效果;在之前的頁面導航操作過程中,不論您導航到哪個頁面,我們都可以使用手勢操作把最前面的導航抽屜面板推出來,這樣的使用情境有時無法滿足我們的需求,因此,在以往,我們需要另外透過C# 程式碼來關閉這個功能;然而,現在我們可以不再需要這麼做了,就可以做到滿足我們的需求。
另外,有些時候,我們需要在同一個App 內,擁有多個導航抽屜內容,您可以試著嘗試看看,能否做出這樣的效果。
若您對於Xamarin / Xamarin.Forms的開發上有興趣或者有疑問的話,可以參考 Xamarin / Xamarin.Forms 行動跨平台Mobile Cross-Platform開發學習指引問答集FAQ 這篇文章內容。