Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Bu kitap 2016 baharında yayımlanmıştır ve o zamandan beri güncellenmemiştir. Kitapta değerli kalan çok şey vardır, ancak bazı malzemeler eskidir ve bazı konular artık tamamen doğru veya eksiksiz değildir.
Şu ana kadar : ve NavigationPage'den PageContentPage türetilen iki sınıf gördünüz. Bu bölümde iki bölüm daha yer alıyor:
MasterDetailPagebir ana sayfa ve bir ayrıntı olmak üzere iki sayfayı yönetirTabbedPagesekmeler aracılığıyla erişilen birden çok alt sayfayı yönetir
Bu sayfa türleri, Bölüm 24'te açıklanandan daha gelişmiş gezinti seçenekleri NavagationPage sağlar. Sayfa Gezintisi.
Ana ve Ayrıntı
türündeki MasterDetailPage Pageiki özelliği tanımlar: Master ve Detail. Genellikle bu özelliklerin her birini olarak ContentPageayarlarsınız. bu MasterDetailPage iki sayfa arasında görüntüler ve geçiş yapar.
Bu iki sayfa arasında geçiş yapmanın iki temel yolu vardır:
- ana ve ayrıntının yan yana olduğu bölme
- ayrıntı sayfasının ana sayfayı kapladığı veya kısmen kapladığı popover
Popover yaklaşımının çeşitli varyasyonları vardır (slayt, çakışma ve değiştirme), ancak bunlar genellikle platforma bağımlıdır. özelliğini MasterDetailPage numaralandırmanın MasterDetailBehavior bir üyesine MasterBehavior ayarlayabilirsiniz:
Ancak, bu özelliğin telefonlar üzerinde hiçbir etkisi yoktur. Telefonların her zaman bir popover davranışı vardır. Yalnızca tabletler ve masaüstü pencereleri bölünmüş bir davranışa sahip olabilir.
Davranışları Keşfetme
MasterDetailBehaviors örneği, farklı cihazlarda varsayılan davranışı denemenize olanak tanır. Program, ana ve ayrıntı için iki ayrı ContentPage türev içerir (her ikisinde de ayarlanmış bir Title özellik ile) ve bunları birleştiren başka MasterDetailPage bir sınıf. UWP programı olmadan çalışmayacağından ayrıntı sayfası içine NavigationPage alınır.
Windows 8.1 ve Windows Phone 8.1 platformları, ana sayfanın özelliğine Icon bir bit eşlem ayarlanmasını gerektirir.
Okula Geri Dön
SchoolAndDetail örneği, SchoolOfFineArt kitaplığındaki öğrencileri görüntülemek üzere programı oluşturmak için biraz farklı bir yaklaşım benimser.
Master ve Detail özellikleri, dosyasından MasterDetailPagetüretilen SchoolAndDetailPage.xaml dosyasındaki görsel ağaçlarla tanımlanır. Bu düzenleme, veri bağlamalarının ana ve ayrıntı sayfaları arasında ayarlanmasını sağlar.
Bu XAML dosyası da özelliğini MasterDetailPage olarak TrueayarlarIsPresented. Bu, ana sayfanın başlangıçta görüntülenmesine neden olur; varsayılan olarak ayrıntı sayfası görüntülenir. SchoolAndDetailPage.xaml.cs dosyası, ana sayfada öğesi ListView seçildiğinde olarak ayarlanır IsPresented false. Ardından ayrıntı sayfası görüntülenir:
Kendi kullanıcı arabiriminiz
Ana ve ayrıntı görünümleri arasında geçiş yapmak için bir kullanıcı arabirimi sağlasa Xamarin.Forms da, kendi görünümünüzü sağlayabilirsiniz. Yapmak için:
- Çekmeyi
IsGestureEnableddevre dışı bırakmak için özelliğinifalseolarak ayarlayın ShouldShowToolbarButtonYöntemini geçersiz kılın ve Windows 8.1 ve Windows Phone 8.1'de araç çubuğu düğmelerini gizlemek için geri dönünfalse.
Ardından, ColorsDetail örneği tarafından gösterildiği gibi ana ve ayrıntı sayfaları arasında geçiş yapmak için bir araç sağlamanız gerekir.
MasterDetailTaps örneği, ana ve ayrıntı sayfalarında kullanarak başka bir TapGestureRecognizer yaklaşım gösterir.
TabbedPage
TabbedPage, sekmeleri kullanarak arasında geçiş yapabileceğiniz bir sayfa koleksiyonudur. Öğesinden MultiPage<Page> türetilir ve kendi ortak özelliklerini veya yöntemlerini tanımlamaz. MultiPage<T>ancak, bir özellik tanımlar:
Childrentürün özelliğiIList<T>
Bu Children koleksiyonu sayfa nesneleriyle doldurursunuz.
Başka bir yaklaşım, sekmeli sayfaları otomatik olarak oluşturan şu iki özelliği kullanarak alt öğeleri çok benzer şekilde ListView tanımlamanızı TabbedPage sağlar:
ItemsSourcetürüIEnumerableItemTemplatetürüDataTemplate
Ancak koleksiyon birkaç öğeden fazlasını içerdiğinde bu yaklaşım iOS'ta iyi çalışmaz.
MultiPage<T> şu anda hangi sayfanın görüntülendiğini izlemenizi sağlayan iki özellik daha tanımlar:
CurrentPagetüründeT, sayfaya başvuruda bulunarakSelectedItemtüründeObject, koleksiyondaki nesneye başvuruda bulunarakItemsSource
MultiPage<T> ayrıca iki olayı tanımlar:
PagesChangedkoleksiyon değiştiğindeItemsSourceCurrentPageChangedgörüntülenen sayfa değiştiğinde
Ayrık sekme sayfaları
DiscreteTabbedColors örneği, renkleri üç farklı şekilde görüntüleyen üç sekmeli sayfadan oluşur. Her sekme bir ContentPage türevdir ve ardından TabbedPage discreteTabbedColorsPage.xaml türevi üç sayfayı birleştirir.
içinde TabbedPagegörünen her sayfa için özelliğin Title sekmedeki metni belirtmesi gerekir ve Apple Store için de bir simge kullanılması gerekir, bu nedenle Icon özellik iOS için ayarlanır:
StudentNotes örneğinde tüm öğrencileri listeleyen bir giriş sayfası vardır. Bir öğrenciye dokunulduğunda, görsel ağacına üç ContentPage nesne içeren bir TabbedPage türevine StudentNotesDataPagegider ve bunlardan biri o öğrenci için bazı notlar girilmesine olanak tanır.
ItemTemplate Kullanma
MultiTabbedColor örneği, Book.Toolkit kitaplığındakiXamarin.Forms sınıfını kullanır.NamedColor MultiTabbedColorsPage.xaml dosyası özelliğini TabbedPage özelliğine bağlamalar NamedColor (özelliğine bağlama dahil) içeren ile ContentPage başlayan bir görsel ağaç olarak Title ayarlarDataTemplate.
Ancak, bu iOS'ta sorunludur. Öğelerden yalnızca birkaçı görüntülenebilir ve bunlara simge vermenin iyi bir yolu yoktur.

