ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12주차 TwoWindows , 페이지 내비게이션
    카테고리 없음 2023. 6. 10. 23:16

    이번주차를 시작하기 전에는 미리 알아두어야 할 것이 있다.

     

    ModalModaless 차이점을 알아야 한다

    - Modal 창이 열리면 기존에 있던 창은 사용하지 못한다.

    Modaless창이 열리면 기존에 있던 창이 사용가능하다는 

    차이점을 알아두어야 한다.

     

    디자인 코드 

    <Window x:Class="TwoWindows.MainWindow“
       …
       Title="Two Windows" Height="250" Width="400">
      <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" 
    	Orientation="Horizontal">
        <Button x:Name="btnShow" Content="Show()-Modaless" 
    	Height="40" Width="120" Click="btnShow_Click"/>
        <TextBlock Width="30"/>
        <Button x:Name="btnShowDialog" Content="ShowDialog()-Modal" 
    	Height="40" Width="120" Click="btnShowDialog_Click"/>
      </StackPanel>
    </Window>

     

    CS코드 

        private void btnShow_Click(object sender, RoutedEventArgs e)
        {
          Window1 w = new Window1();
          w.Show();		// 모달리스
        }
    
        private void btnShowDialog_Click(object sender, RoutedEventArgs e)
        {
          Window1 w = new Window1();	
          w.ShowDialog();		// 모달
        }

     

    결과 창

     

     

    첫번째 버튼을 누르면 기존 화면이 사용가능하지만 

    두번재 버튼은 기존 화면이 사용 불가능해진다. 

     

     

     

    페이지 네비게이션 

     

     

     

    본 페이지는 Frame Source로 지명 해준다 .

     

    <Window x:Class="Pages.MainWindow"
            	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    	...
    	Title="Login" Height="500" Width="500">
      <Grid>
        <Frame Source="/Page1.xaml"/>
      </Grid>
    </Window>

     

     

    Page 1 디자인 코드 및 CS 코드 

    <Page x:Class="Pages.Page1"
          d:DesignHeight="300" d:DesignWidth="400"
          Title="Page1">
      <Grid>
        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
          <Button x:Name="btnInfo" Content="Information" Margin="20 0 10 0" 
    	Height="50" Width="88" Click="btnInfo_Click"/>
          <Button x:Name="btnLogin" Content="ID/Password" Margin="10 0 10 0" 
    	Height="50" Width="88" Click="btnLogin_Click"/>
          <Button x:Name="btnSignUp" Content="SignUp" Margin="10 0 20 0" 
    	Height="50" Width="88" Click="btnSignUp_Click"/>
        </StackPanel>
      </Grid>
    </Page>
    private void btnInfo_Click(object sender, RoutedEventArgs e)
    {
        NavigationService.Navigate(new Uri("/Email.xaml", UriKind.Relative));
    }
    
    private void btnLogin_Click(object sender, RoutedEventArgs e)
    {
        NavigationService.Navigate(new Uri("/Login.xaml", UriKind.Relative));
    }
    
    private void btnSignUp_Click(object sender, RoutedEventArgs e)
    {
      NavigationService.Navigate(new Uri("/SignUp.xaml", UriKind.Relative));
    }

     

    페이지 1에는 information 과 Login , Sign up 버튼 세개를 디자인 해놓는다. 

    또한 CS코드로

     

      NavigationService.Navigate(new Uri("/Email.xaml", UriKind.Relative));

     

    (이동할 페이지).xaml 로 하여 페이지 이동을 만들어 준다.

     

    Information 디자인 코드 

    <Page x:Class="Pages.Page2“
          ...
          d:DesignHeight="300" d:DesignWidth="400"
          Title="Page2">
      <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
    
        <TextBlock HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" 
    	Margin="30">Information</TextBlock>
    
        <StackPanel Orientation="Horizontal" Margin="10">
          <TextBlock Width="50" TextAlignment="Right">Email:</TextBlock>
          <TextBlock Width="30"/>
          <TextBox Width="150"></TextBox>
        </StackPanel>
    
        <StackPanel Orientation="Horizontal" Margin="10">
          <TextBlock Width="50" TextAlignment="Right">Name:</TextBlock>
          <TextBlock Width="30"/>
          <TextBox Width="150"></TextBox>
        </StackPanel>
      </StackPanel>
    </Page>

     

    Login 디자인코드 

    <Page x:Class="Pages.Page3"
          d:DesignHeight="300" d:DesignWidth="400“ Title="Login">
      <Grid>
        <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
          <TextBlock HorizontalAlignment="Center" FontSize="20" 
    	FontWeight="Bold" Margin="30">Login</TextBlock>
          <StackPanel Orientation="Horizontal" Margin="10">
            <TextBlock Width="50" TextAlignment="Right">Id:</TextBlock>
            <TextBlock Width="30"/>
            <TextBox Width="150"></TextBox>
          </StackPanel>
          <StackPanel Orientation="Horizontal" Margin="10">
            <TextBlock Width="50" TextAlignment="Right">Password:</TextBlock>
            <TextBlock Width="30"/>
            <PasswordBox Width="150"></PasswordBox>
          </StackPanel>
          <StackPanel Orientation="Horizontal" Margin="10">
            <TextBlock Width="50" TextAlignment="Right"></TextBlock>
            <TextBlock Width="30"/>
            <Button Width="150" Height="24">Login</Button>
          </StackPanel>
        </StackPanel>
      </Grid>
    </Page>

     

     

     

    Sign up 디자인 코드 

     

    <Page x:Class="Pages.SignUp“
          ...
          d:DesignHeight="300" d:DesignWidth="400"
          Title="SignUp">
    
      <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <TextBlock HorizontalAlignment="Center" FontSize="20" FontWeight="Bold" 
    	Margin="20">SignUp</TextBlock>
        <StackPanel Orientation="Horizontal" Margin="10">
          <TextBlock Width="60" TextAlignment="Right">Id:</TextBlock>
          <TextBlock Width="20"/>
          <TextBox Width="150"></TextBox>
        </StackPanel>
        <StackPanel Orientation="Horizontal" Margin="10">
          <TextBlock Width="60" TextAlignment="Right">Password:</TextBlock>
          <TextBlock Width="20"/>
          <TextBox Width="150"></TextBox>
        </StackPanel>
        <StackPanel Orientation="Horizontal" Margin="10" ...></StackPanel>
        <StackPanel Orientation="Horizontal" Margin="10" ...></StackPanel>
        <StackPanel Orientation="Horizontal" Margin="10" ...></StackPanel>
        <StackPanel Orientation="Horizontal" Margin="10">
          <TextBlock Width="60" TextAlignment="Right"></TextBlock>
          <TextBlock Width="20"/>
          <Button Width="150" Height="24">SignUp</Button>
        </StackPanel>
      </StackPanel>
    </Page>

    결과 창

     

Designed by Tistory.