
Silverlight 2 tarayıcımızın içinde çalışır ama bilgisayarın performansınıda sonuna kadar kullanabilir. (çapraz platform sayesinde). Yani silverlight kendi içinde sayfalar arasında geçiş yapabileceği gibi, tarayıcıya başka bir sayfaya gitmesi gerektiğinide söyleyebilir. Şu şekilde,
System.Windows.Browser.HtmlPage.Window.
Navigate(new Uri(http://www.mehmetbilen.com));
Silverlight kendi içinde ise bu navigate işlemini ana bir nesne seçerek değişmesi gereken sayfaları bunun içine koyarak yapıyor. Yani ekranda sabit bir grid, canvas vb.. var. Bunun içine gözükmesi gereken nesnelerimiz ekleniyor veya çıkıyor. O zaman ekranda layoutroot diye sabit bir canvasımız olsun, ve iki tanede hazırlanmış sayfamız olsun sayfa1.xaml ve sayfa2.xaml bunları sırayla deiştirebilecek bir fonksiyon yazalım.
public bool ilksayfada = true;
public void degistir()
{
if (ilksayfada==true)
{
sayfa2 yenisayfa2 = new sayfa2();
this.LayoutRoot.Children.Clear();
this.LayoutRoot.Children.Add(yenisayfa2);
ilksayfada = false;
}
else
{
sayfa1 yenisayfa1 = new sayfa1();
this.LayoutRoot.Children.Clear();
this.LayoutRoot.Children.Add(yenisayfa1);
ilksayfada = true;
}
ilksayfada adli boolean bir değişkenimiz var bu değişken true ise biz halihazırda ilk sayfada olduğumuzu if yordami ile kontrol ediyoruz, ilk sayfada isek yeni bir sayfa2 türetiyoruz, LayoutRoot'umuzun içini clear komutu ile güzelce temizliyoruz ve yeni oluşturduğumuz sayfa2'yi layoutroot'umuzun içine yerleştiriyoruz, else kısmında yani tam tersi olsaydı ekranda sayfa2 olmuş olsaydı bu sefer 1. sayfaya yönlendirmiş olacaktık. Bu fonksiyon bir toogla modunda yani sıra ile sayfaları gezdiriyor, biz bunun yerine dışarıdan parametrede alabilirdik, artık orası sizin ihtiyaç duyduğunuz çözüme bağlı. iyi çalışmalar...
Enver Mehmet Bilen | enver_emb@hotmail.com