Bu makalemde Silverlight 2.0 ile navigasyon işlemlerinin nasıl yapıldığı hakkında örnek bir uygulama üzerinde inceleme yapacağız.Örneğin 2 tane sayfamız olsun ve bu sayfaların her birinde birer buton olsun.Bu butonu  diğer sayfayı görüntelemek için kullanalım.Yeni bir Silverlight Application uygulaması yarattıktan sonra projemize PageSwitcher.xaml ,Page.xaml ve Page2.xaml  olmak üzere 3 tane user control ekleyelim.Daha sonra tasarımı aşağıdaki gibi düzeneyelim.

[Page.xaml]     

<UserControl x:Class="SLNavigation.Page"       

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation";        

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";        

Width="400" Height="300">        

<Grid x:Name="LayoutRoot" Background="White">

<StackPanel VerticalAlignment="Center">

<TextBlock HorizontalAlignment="Center" Text="Sayfa 1"/>

<Button x:Name="button" Width="80" Height="35" Content="Git" Click="button_Click"/>

</StackPanel>

</Grid>

</UserControl> 

[Page2.xaml]

Bu sayfamızda Page.xaml ile aynı  fakat tek fark TextBlock kontrolünün Text özelliği Sayfa 2 olarak değiştirebilirsiniz.

[PageSwitcher.xaml]    

<UserControl x:Class="SLNavigation.PageSwitcher"

xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation

xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml

Width="400" Height="300">

</UserControl>

[PageSwitcher.xaml.cs]    

public partial class PageSwitcher : UserControl

{

public PageSwitcher()

{

InitializeComponent();

if (this.Content==null)

{

this.Content =new Page();

}

}

public void Navigate(UserControl nextPage)

{

this.Content = nextPage;

}

}

[Page.xaml.cs]

Bu sayfamızdaki butonun click olayına şu kodları yazıyoruz. 

private void button_Click(object sender, RoutedEventArgs e)

{

PageSwitcher ps = this.Parent as PageSwitcher;

ps.Navigate(new Page2());

}

 [Page2.xaml.cs]

Bu sayfamızdaki butonun click olayına da şu kodları  yazıyoruz.

private void button_Click(object sender, RoutedEventArgs e)

{

PageSwitcher ps = this.Parent as PageSwitcher;

ps.Navigate(new Page());

}

 Peki hepsi bu kadar mı?Tabiki hayır.Son olarak küçük bir ayarlama yapmak gerekiyor.Uygulamanın başlangıç ayarlarından çalışacak ilk sayfayı PageSwitcher olarak değiştirmemiz gerekecek.

[App.xaml.cs]

private void Application_Startup(object sender, StartupEventArgs e)

{

this.RootVisual = new PageSwitcher();

}

Artık uygulamamızı çalıştırıp sonucu görebilirsiniz.Silverlight 2.0’da navigasyon işlemleri bu kadar.Teşekkürler.

SLNavigation.rar (31,07 kb)

About the Author