Gezinti Topolojilerine Genel Bakış

Bu genel bakış, WPF'deki gezinti topolojilerine giriş sağlar. Örneklerle birlikte üç yaygın gezinti topolojisi daha sonra ele alınıyor.

Dekont

Bu konuyu okumadan önce, sayfa işlevlerini kullanarak WPF'de yapılandırılmış gezinti kavramı hakkında bilgi sahibi olmanız gerekir. Bu konuların her ikisi hakkında daha fazla bilgi için bkz . Yapılandırılmış Gezintiye Genel Bakış.

Bu konu, aşağıdaki bölümleri içerir:

WPF'de gezinti genellikle tıklandığında diğer sayfalara gitmek için köprüler () içeren sayfalardanPage (Hyperlink) oluşur. Gidilen sayfalar tekdüzen kaynak tanımlayıcıları (URI' ler) tarafından tanımlanır (bkz . WPF'de URI'leri paketleme). Sayfaları, köprüleri ve tekdüzen kaynak tanımlayıcılarını (URI) gösteren aşağıdaki basit örneği göz önünde bulundurun:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page1">
  <Hyperlink NavigateUri="Page2.xaml">Navigate to Page2</Hyperlink>
</Page>
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle="Page2">
  <Hyperlink NavigateUri="Page1.xaml">Navigate to Page1</Hyperlink>
</Page>

Bu sayfalar, yapısı sayfalar arasında nasıl gezinebileceğinize göre belirlenen bir gezinti topolojisinde düzenlenir. Bu özel gezinti topolojisi basit senaryolarda uygundur, ancak gezinti daha karmaşık topolojiler gerektirebilir; bunlardan bazıları yalnızca bir uygulama çalışırken tanımlanabilir.

Bu konu üç yaygın gezinti topolojisini kapsar: sabit doğrusal, sabit hiyerarşik ve dinamik olarak oluşturulmuş. Her gezinti topolojisi, aşağıdaki şekilde gösterilen kullanıcı arabirimine sahip bir örnekle gösterilir:

Task pages with data items and navigation buttons.

Yapılandırılmış Gezinti Topolojileri

İki geniş gezinti topolojisi türü vardır:

  • Düzeltildi Topoloji: derleme zamanında tanımlanır ve çalışma zamanında değişmez. Sabit topolojiler, sabit bir sayfa dizisinde doğrusal veya hiyerarşik sırada gezinmek için kullanışlıdır.

  • Dinamik Topoloji: Kullanıcıdan, uygulamadan veya sistemden toplanan girişlere göre çalışma zamanında tanımlanır. Dinamik topolojiler, sayfalarda farklı sıralarda gezinilebildiği durumlarda kullanışlıdır.

Sayfaları kullanarak gezinti topolojileri oluşturmak mümkün olsa da örnekler, topolojinin sayfalarından veri geçirme ve döndürme desteğini basitleştiren ek destek sağladığından sayfa işlevlerini kullanır.

Sabit doğrusal topoloji, sabit bir dizide gezinilen bir veya daha fazla sihirbaz sayfası olan bir sihirbazın yapısına benzer. Aşağıdaki şekilde, sabit doğrusal topolojiye sahip bir sihirbazın üst düzey yapısı ve akışı gösterilmektedir:

Diagram that shows a fixed linear topology.

Sabit doğrusal topolojide gezinmeye yönelik tipik davranışlar şunlardır:

  • Arama sayfasından sihirbazı başlatan ve ilk sihirbaz sayfasına giden bir başlatıcı sayfasına gitme. Bir çağrı sayfası ilk sihirbaz sayfasını doğrudan çağırabildiğinden, başlatıcı sayfası (kullanıcı arabirimi olmayan PageFunction<T>) gerekli değildir. Ancak, özellikle başlatma karmaşıksa, başlatıcı sayfası kullanmak sihirbaz başlatmayı basitleştirebilir.

  • Kullanıcılar, Geri ve İlet düğmelerini (veya köprüleri) kullanarak sayfalar arasında gezinebilir.

  • Kullanıcılar günlüğü kullanarak sayfalar arasında gezinebilir.

  • Kullanıcılar, bir İptal düğmesine basarak sihirbazı herhangi bir sihirbaz sayfasından iptal edebilir.

  • Kullanıcılar son sihirbaz sayfasındaki sihirbazı bir Son düğmesine basarak kabul edebilir.

  • Sihirbaz iptal edilirse, sihirbaz uygun bir sonuç döndürür ve hiçbir veri döndürmez.

  • Kullanıcı bir sihirbazı kabul ederse, sihirbaz uygun bir sonuç döndürür ve topladığı verileri döndürür.

  • Sihirbaz tamamlandığında (kabul edildi veya iptal edildi), sihirbazın oluşturduğu sayfalar günlükten kaldırılır. Bu, sihirbazın her örneğini yalıtılmış tutar ve böylece olası veri veya durum anomalilerinden kaçınılır.

Sabit Hiyerarşik Topoloji üzerinde Dinamik Gezinti

Bazı uygulamalarda sayfalar, aşağıdaki şekilde gösterildiği gibi iki veya daha fazla sayfaya daha gezintiye izin verir:

Diagram that shows a page that can navigate to multiple pages.

Bu yapı sabit hiyerarşik topoloji olarak bilinir ve hiyerarşinin geçiş sırası genellikle uygulama veya kullanıcı tarafından çalışma zamanında belirlenir. Çalışma zamanında, hiyerarşideki iki veya daha fazla sayfaya gezintiye izin veren her sayfa, hangi sayfaya gidileceğini belirlemek için gereken verileri toplar. Aşağıdaki şekilde, önceki şekil temelinde birkaç olası gezinti dizilerinden biri gösterilmektedir:

Diagram that shows a possible navigation sequence.

Sabit bir hiyerarşik yapıdaki sayfaların gezinildiği sıra çalışma zamanında belirlense de, kullanıcı deneyimi sabit doğrusal topoloji için kullanıcı deneyimiyle aynıdır:

  • Arama sayfasından sihirbazı başlatan ve ilk sihirbaz sayfasına giden bir başlatıcı sayfasına gitme. Bir çağrı sayfası ilk sihirbaz sayfasını doğrudan çağırabildiğinden, başlatıcı sayfası (kullanıcı arabirimi olmayan PageFunction<T>) gerekli değildir. Ancak, özellikle başlatma karmaşıksa, başlatıcı sayfası kullanmak sihirbaz başlatmayı basitleştirebilir.

  • Kullanıcılar, Geri ve İlet düğmelerini (veya köprüleri) kullanarak sayfalar arasında gezinebilir.

  • Kullanıcılar günlüğü kullanarak sayfalar arasında gezinebilir.

  • Kullanıcılar, günlükte geri gitmeleri durumunda gezinti sırasını değiştirebilir.

  • Kullanıcılar, bir İptal düğmesine basarak sihirbazı herhangi bir sihirbaz sayfasından iptal edebilir.

  • Kullanıcılar son sihirbaz sayfasındaki sihirbazı bir Son düğmesine basarak kabul edebilir.

  • Sihirbaz iptal edilirse, sihirbaz uygun bir sonuç döndürür ve hiçbir veri döndürmez.

  • Kullanıcı bir sihirbazı kabul ederse, sihirbaz uygun bir sonuç döndürür ve topladığı verileri döndürür.

  • Sihirbaz tamamlandığında (kabul edildi veya iptal edildi), sihirbazın oluşturduğu sayfalar günlükten kaldırılır. Bu, sihirbazın her örneğini yalıtılmış tutar ve böylece olası veri veya durum anomalilerinden kaçınılır.

Bazı uygulamalarda, iki veya daha fazla sayfanın gezinildiği sıra yalnızca kullanıcı, uygulama veya dış veriler tarafından çalışma zamanında belirlenebilir. Aşağıdaki şekilde, belirlenemeyen bir gezinti dizisine sahip bir sayfa kümesi gösterilmektedir:

A set of pages with an undetermined navigation sequence.

Sonraki şekilde, kullanıcı tarafından çalışma zamanında seçilen bir gezinti dizisi gösterilmektedir:

Diagram that shows a navigation sequence chosen at run time.

Gezinti dizisi dinamik olarak oluşturulan topoloji olarak bilinir. Diğer gezinti topolojileri gibi kullanıcı için de kullanıcı deneyimi önceki topolojilerle aynıdır:

  • Arama sayfasından sihirbazı başlatan ve ilk sihirbaz sayfasına giden bir başlatıcı sayfasına gitme. Bir çağrı sayfası ilk sihirbaz sayfasını doğrudan çağırabildiğinden, başlatıcı sayfası (kullanıcı arabirimi olmayan PageFunction<T>) gerekli değildir. Ancak, özellikle başlatma karmaşıksa, başlatıcı sayfası kullanmak sihirbaz başlatmayı basitleştirebilir.

  • Kullanıcılar, Geri ve İlet düğmelerini (veya köprüleri) kullanarak sayfalar arasında gezinebilir.

  • Kullanıcılar günlüğü kullanarak sayfalar arasında gezinebilir.

  • Kullanıcılar, bir İptal düğmesine basarak sihirbazı herhangi bir sihirbaz sayfasından iptal edebilir.

  • Kullanıcılar son sihirbaz sayfasındaki sihirbazı bir Son düğmesine basarak kabul edebilir.

  • Sihirbaz iptal edilirse, sihirbaz uygun bir sonuç döndürür ve hiçbir veri döndürmez.

  • Kullanıcı bir sihirbazı kabul ederse, sihirbaz uygun bir sonuç döndürür ve topladığı verileri döndürür.

  • Sihirbaz tamamlandığında (kabul edildi veya iptal edildi), sihirbazın oluşturduğu sayfalar günlükten kaldırılır. Bu, sihirbazın her örneğini yalıtılmış tutar ve böylece olası veri veya durum anomalilerinden kaçınılır.

Ayrıca bkz.