'COMPUTER TECH/SilverLIght'에 해당되는 글 1건

  1. 2010.08.13 제목을 입력해 주세요.

실버라이트 페이지 전환

 

실버라이트 페이지 전환

사용목적

   실버라이트 응용 프로그램에서는 XAML파일들이 서로간에 직접 전환되는 기능을 제공하지

   않기 때문에 다음과 같이 구현해야 사용이 가능하다

 


페이지 전환의 구조

 

App SwticherPage를 가르키며 SwticherPage는 각각의 전환할 페이지들의 부모이다.

 


SwticherPage.xaml

<UserControl x:Class="SwitchWithinTwoPages.Switcher"


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


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

         
 
Width
="640" Height="480">

 

</UserControl>

Switcher 페이지는 다른 페이지를 감싸는 역할 즉 부모 역할을 한다

   해당 코드를 보면 빈 껍데기 인 것을 볼 수 있다

 


Page.xaml

<UserControl x:Class="SwitchWithinTwoPages.Page"


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


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


          
Width
="640" Height="480">


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


       
<TextBlock Margin="218,150,265,207" Text="Page1" TextWrapping="Wrap"

FontSize
="50" />


       
<Button Height="65" HorizontalAlignment="Left" Margin="218,0,0,168"


               
 VerticalAlignment="Bottom" Width="102" Content="Button" x:Name="but"

FontSize
="24" />


   
</Grid>


</
UserControl>

Margin=" ” (해당 출력물이 표시될 좌표시다)

x:Name="but" (해당 버튼의 이름이 but이다)

 


SwticherPage.xaml.cs

public Switcher()


{


     
InitializeComponent();


     
this.Content = new Page();


     
//
생성자의 초기화 구문 뒤에 Content를 첫번째 Page인스턴스로 지정한다

      //Content는 해당 페이지에 자식 요소들을 보관하는 컨테이너라 할 수 잇다.


}


public
void Navigate(UserControl nextpage)

{


     
this.Content = nextpage;


}


//UserControl
을 입력 매개변수로 하는 메소드를 만든다

//Navigate 메소드에서는 Content를 입력 매개 변수로 받은 UserControl 페이지로 지정한

구문을 추가한다.

Switcher 페이지는 다른 페이지를 감싸는 역할 즉 부모 역할을 한다

  ※ 이 메소드는 다른 UserControl 페이지에서 버튼을 클릭할 시에 호출할 메소드이다

 

 

Page.xaml.cs

public Page()

{

      InitializeComponent();


     
this.but.Click += new RoutedEventHandler(but_Click);

}


void
but_Click(object sender, RoutedEventArgs e)

{

      Switcher sc = this.Parent as Switcher;


     
sc.Navigate(
new Other());

}

■ 첫 페이지의 ButtonClick이벤트 핸들러를 설정하고 해당 핸드러를 편집한다.

■ 두 번째 Page 인스턴스를 생성하여 부모 페이지 컨트롤(Switcher) Navigete 메소드의

   인자로 넘기도록 한다.

 


Page.xaml.cs

public Page()

{


     
InitializeComponent();


     
this.but.Click += new RoutedEventHandler(but_Click);

}

void but_Click(object sender, RoutedEventArgs e)

{

      Switcher sc = this.Parent as Switcher;


     
sc.Navigate(
new Other());

}

■ 첫 페이지의 Button Click이벤트 핸들러를 설정하고 해당 핸드러를 편집한다.

■ 두 번째 Page 인스턴스를 생성하여 부모 페이지 컨트롤(Switcher) Navigete 메소드의

   인자로 넘기도록 한다.

 


Other.xaml.cs

public Page()

{


     
InitializeComponent();


     
this.but.Click += new RoutedEventHandler(but_Click);


}


void
but_Click(object sender, RoutedEventArgs e)

{

      Switcher sc = this.Parent as Switcher;

      sc.Navigate(new Page());

}

■ 두번째 페이지의 Button Click이벤트 핸들러를 설정하고 해당 핸드러를 편집한다.

■ 첫 번째 Page 인스턴스를 생성하여 부모 페이지 컨트롤(Switcher) Navigete 메소드의

   인자로 넘기도록 한다.

 


App.xaml.cs

private void Application_Startup(object sender, StartupEventArgs e)

{

        this.RootVisual = new Switcher();


}

Startup메소드에 초기 RootVisual프로퍼티에 Switcher인스턴스로 지정한다

Switcher는 다른 두개의 페이지 중 한 개의 페이지를 자식 요소로 갖게 되며 해당 페이지에

   서는 클릭을 하면 다른 페이지로 변경할 수 있게 Switcher Navigate메소드를 호출한다.

 


'COMPUTER TECH > SilverLIght' 카테고리의 다른 글

제목을 입력해 주세요.  (0) 2010.08.13
Posted by ... XJAPAN
이전버튼 1 이전버튼