2016-05-08 91 views
0

我已經按照下面的代碼創建了一個基本的主從導航:Xamarin窗體邊欄

https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/

我希望能夠使我的側邊欄可點擊的部分,這將用戶帶到他們的個人資料頁。類似於谷歌邊欄:https://github.com/jamesmontemagno/Xam.NavDrawer

我在哪裏可以找到一些教程,我將如何做到這一點?他們會點擊他們的名字/個人資料圖片,並將他們帶到他們的個人資料頁面。

回答

2

以下是在MasterPage中單擊圖像時導航到另一個頁面的示例。這是MasterPage中的Image的XAML。

<Image 
x:Name="profileImage" 
HeightRequest="100" 
WidthRequest="100" 
HorizontalOptions="Center"/> 

我們將添加一個TapGestureRecogniserImage,然後調用在MasterPage定義的事件。

public partial class MenuPage : ContentPage 
{ 
    public event EventHandler MenuTapped; 
    public MenuPage() 
    { 
     InitializeComponent(); 

     TapGestureRecognizer imageViewTap = new TapGestureRecognizer(); 
     imageViewTap.Tapped+= ImageViewTap_Tapped; 
     profileImage.GestureRecognizers.Add (imageViewTap); 
    } 

    async void ImageViewTap_Tapped (object sender, EventArgs e) 
    { 
     if (MenuTapped != null) 
      MenuTapped (this,EventArgs.Empty); 
    } 
    } 

我們可以聽在MasterDetailPageMasterPage調用事件並導航到個人資料頁面。

public class DashboardPage : MasterDetailPage 
{ 
    DetailPage detailPage; 
    MenuPage masterPage; 
    public DashboardPage() 
    { 
     detailPage = new DetailPage(); 
     var detailNavigationPage=new NavigationPage(detailPage); 
     Detail = detailNavigationPage; 
     masterPage= new MenuPage(){Title="Menu",Icon="ic_menuIcon.png"}; 
     Master = masterPage; 
     masterPage.MenuTapped+= MasterPage_MenuTapped; 
    } 
    async void MasterPage_MenuTapped (object sender, EventArgs e) 
    { 
     Detail=new new NavigationPage(new ProfilePage());// If you want to load profile page as `DetailPage` 
     await Navigation.PushModalAsync(new ProfilePage)// If you want to load profile page as another page modally. 
    }