Gezinti Topolojilerine Genel Bakış
Bu genel bakış, WPF'de gezinti topolojileri hakkında giriş sağlar. Daha sonra örneklerle birlikte üç yaygın gezinti topolojisi ele alınmıştır.
Not
Bu konuyu okumadan önce, sayfa işlevlerini kullanarak WPF'de yapılandırılmış gezinti kavramı hakkında bilgi sahibisiniz. 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çermektedir:
Gezinti Topolojileri
WPF'de gezinti genellikle tıklandıklarında diğer Page sayfalara gidilen köprülere ( ) sahip Hyperlink sayfalardan ( ) oluşur. Gezinilen sayfalar tekdüdüz kaynak tanımlayıcıları ( URI) ile tanımlanır (bkz. WPF'de Paket URI'leri). Sayfaları, köprüleri ve tekdüz kaynak tanımlayıcılarını ( URI) gösteren aşağıdaki basit örneği göz önünde bulundurabilirsiniz:
<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, sayfaların arasında nasıl gezinebilirsiniz? yapısına göre belirlenen bir gezinti topolojisinde düzenlenmiştir. Bu gezinti topolojisi basit senaryolarda uygundur, ancak gezinti daha karmaşık topolojiler gerektirse de, bazıları yalnızca bir uygulama çalıştırıken tanımlanabilir.
Bu konu, üç yaygın gezinti topolojisini kapsar: sabit doğrusal,sabit hiyerarşikve dinamik olarak oluşturulan. Her gezinti topolojisi, aşağıdaki şekilde gösterilene benzer bir kullanıcı arabirimine sahip bir örnekle gösterilir:

Yapılandırılmış Gezinti Topolojileri
İki geniş gezinti topolojisi türü vardır:
Topoloji düzeltildi: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şe göre çalışma zamanında tanımlanır. Dinamik topolojiler, sayfalarda farklı sıralarda gezinilene zaman yararlı olur.
Sayfaları kullanarak gezinti topolojileri oluşturmak mümkün olsa da, örnekler bir topolojinin sayfaları üzerinden veri geçirme ve geri dönme desteğini basitleştiren ek destek sağlamaları nedeniyle sayfa işlevlerini kullanır.
Sabit Doğrusal Topoloji üzerinde gezinme
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österir:

Sabit bir doğrusal topolojide gezinmek için tipik davranışlar şunlardır:
Çağrı sayfasından sihirbazı başlatan ve ilk sihirbaz sayfasına gidilen bir başlatıcı sayfasına gidin. Bir çağrı sayfası ilk sihirbaz sayfasını doğrudan çağırana kadar başlatıcı sayfası (kullanıcı arabirimi olmayan) PageFunction<T> gerekli değildir. Bununla birlikte, bir başlatıcı sayfası kullanmak, özellikle başlatma karmaşıksa sihirbaz başlatmayı basitleştirebilir.
Kullanıcılar, Geri ve İleri düğmelerini (veya köprüleri) kullanarak sayfalar arasında gezinebilirsiniz.
Kullanıcılar günlüğü kullanarak sayfalar arasında gezinebilirsiniz.
Kullanıcılar, bir İptal düğmesine basarak sihirbazı herhangi bir sihirbaz sayfasından iptal edebilir.
Kullanıcılar son sihirbaz sayfasında bir Son düğmesine basarak sihirbazı kabul eder.
Sihirbaz iptal edilirse, sihirbaz uygun bir sonuç döndürür ve herhangi bir veri döndürz.
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 edilir veya iptal edilir), sihirbazın içinde yer alan sayfalar günlükten kaldırılır. Bu, sihirbazın her örneğini yalıtarak olası veri veya durum anomalilerini önler.
Sabit Hiyerarşik Topoloji üzerinde Dinamik Gezinti
Bazı uygulamalarda sayfalar, aşağıdaki şekilde gösterildiği gibi iki veya daha fazla sayfada gezinmeye olanak sağlar:

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

Sabit hiyerarşik yapıda sayfaların gezinilme sırası çalışma zamanında belirlense de, kullanıcı deneyimi sabit doğrusal topoloji için kullanıcı deneyimiyle aynıdır:
Çağrı sayfasından sihirbazı başlatan ve ilk sihirbaz sayfasına gidilen bir başlatıcı sayfasına gidin. Bir çağrı sayfası ilk sihirbaz sayfasını doğrudan çağırana kadar başlatıcı sayfası (kullanıcı arabirimi olmayan) PageFunction<T> gerekli değildir. Bununla birlikte, bir başlatıcı sayfası kullanmak, özellikle başlatma karmaşıksa sihirbaz başlatmayı basitleştirebilir.
Kullanıcılar, Geri ve İleri düğmelerini (veya köprüleri) kullanarak sayfalar arasında gezinebilirsiniz.
Kullanıcılar günlüğü kullanarak sayfalar arasında gezinebilirsiniz.
Kullanıcılar günlükte geri gezinen 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ında bir Son düğmesine basarak sihirbazı kabul eder.
Sihirbaz iptal edilirse, sihirbaz uygun bir sonuç döndürür ve herhangi bir veri döndürz.
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 edilir veya iptal edilir), sihirbazın içinde yer alan sayfalar günlükten kaldırılır. Bu, sihirbazın her örneğini yalıtarak olası veri veya durum anomalilerini önler.
Dinamik Olarak Oluşturulan Topoloji üzerinde gezinme
Bazı uygulamalarda, iki veya daha fazla sayfanın gezin olduğu sıra yalnızca çalışma zamanında (kullanıcı, uygulama veya dış veriler) belirlenebilir. Aşağıdaki şekilde, belirlenemeyen bir gezinti dizisine sahip bir sayfa kümesi yer almaktadır:

Aşağıdaki şekilde, çalışma zamanında kullanıcı tarafından seçilen bir gezinti sırası gösterilmelidir:

Gezinti sırası dinamik olarak oluşturulan bir topoloji olarak bilinir. Kullanıcı için, diğer gezinti topolojileri gibi kullanıcı deneyimi de önceki topolojilerle aynıdır:
Çağrı sayfasından sihirbazı başlatan ve ilk sihirbaz sayfasına gidilen bir başlatıcı sayfasına gidin. Bir çağrı sayfası ilk sihirbaz sayfasını doğrudan çağırana kadar başlatıcı sayfası (kullanıcı arabirimi olmayan) PageFunction<T> gerekli değildir. Bununla birlikte, bir başlatıcı sayfası kullanmak, özellikle başlatma karmaşıksa sihirbaz başlatmayı basitleştirebilir.
Kullanıcılar, Geri ve İleri düğmelerini (veya köprüleri) kullanarak sayfalar arasında gezinebilirsiniz.
Kullanıcılar günlüğü kullanarak sayfalar arasında gezinebilirsiniz.
Kullanıcılar, bir İptal düğmesine basarak sihirbazı herhangi bir sihirbaz sayfasından iptal edebilir.
Kullanıcılar son sihirbaz sayfasında bir Son düğmesine basarak sihirbazı kabul eder.
Sihirbaz iptal edilirse, sihirbaz uygun bir sonuç döndürür ve herhangi bir veri döndürz.
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 edilir veya iptal edilir), sihirbazın içinde yer alan sayfalar günlükten kaldırılır. Bu, sihirbazın her örneğini yalıtarak olası veri veya durum anomalilerini önler.