티스토리 뷰

VS-02분반수업

VP02(22-05-11)

choimyeongheon 2022. 5. 16. 21:10

WPF으로 login레이아웃과 20개 cell의 색을 바꾸는 프로그램을 만들어보았다.

 

[1] Login 화면 구성하기(DB extension이 되어있지 않아 xaml만 구성해보았음)

<Window x:Class="_033_WPFLogin.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:_033_WPFLogin"
        mc:Ignorable="d"
        Title="Login" Height="340" Width="300" 
        Background="SteelBlue">
  <Border Background="White" Margin="20">
    <StackPanel Margin="20">
      <TextBlock Text="Login" FontSize="20" 
                 HorizontalAlignment="Center"
                 Margin="10"/>
      <Separator Background="Orange"/>
      <TextBlock Text="UserName" FontSize="16" 
                 Margin="0,5"/>
      <TextBox x:Name="txtUserName" FontSize="16"/>
      <TextBlock Text="Password" FontSize="16" 
                 Margin="0,5"/>
      <TextBox x:Name="txtPassword" FontSize="16"/>
      <Button x:Name="btnLogin" Content="로그인"
              FontSize="16" Width="100" 
              Margin="10,20" Click="btnLogin_Click"/>
    </StackPanel>
  </Border>
</Window>

윈도우의 높이는 340 너비는 300으로 맞춰준 뒤 배경색은 SteelBlue로 설정

Border안에 사방 margin을 20으로 통일해준 StackPanel(Vertical)을 선언

{Border는 그냥 테두리임}

login(TextBlock)을 생성해준 뒤 separator을 그어줌

그 후 텍스트박스와 텍스트블록을 두 쌍 선언해줌

그리고 마지막으로 버튼을 생성

위와같은 레이아웃이 구성되었으며 DB는 추후에 구축할 예정이다.


[2] Splash(DB를 사용하여 그리드에 색을 출력하는 프로그램)(DB extension이 되어있지 않아 xaml만 구성해보았음)

<Window x:Class="_034_Splash.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:_034_Splash"
        mc:Ignorable="d"
        Title="MainWindow" Height="600" Width="700">
  <Grid>
    <Button Content="랜덤 색깔 표시" 
            HorizontalAlignment="Left"
            VerticalAlignment="Top"
            Margin="20,20,0,0"  Width="150"
            x:Name="btnRandom"
            Click="btnRandom_Click"/>
    <Button Content="DB에 저장된 색깔 표시" 
            HorizontalAlignment="Left"
            VerticalAlignment="Top"
            Margin="20,50,0,0"  Width="150"
            x:Name="btnDB"
            Click="btnDB_Click"/>

    <Button Content="DB Reset" 
            HorizontalAlignment="Right"
            VerticalAlignment="Top"
            Margin="0,20,20,0"  Width="150"
            x:Name="btnReset"
            Click="btnReset_Click"/>
    <Button Content="종료" 
            HorizontalAlignment="Right"
            VerticalAlignment="Top"
            Margin="0,50,20,0"  Width="150"
            x:Name="btnExit"
            Click="btnExit_Click"/>
    <TextBlock HorizontalAlignment="Left"
               VerticalAlignment="Top"
               TextAlignment="Center"
               Margin="275,20,0,0" 
               Width="150"
               x:Name="lblDate"/>
    <TextBlock HorizontalAlignment="Left"
               VerticalAlignment="Top"
               TextAlignment="Center"
               Margin="275,50,0,0" 
               Width="150"
               x:Name="lblTime"/>
    <Grid Margin="20,90,20,20" 
          Background="AntiqueWhite" 
          Height="200" 
          VerticalAlignment="Top">
      <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
      </Grid.ColumnDefinitions>
      <Border Margin="1" x:Name="bd1" 
              Grid.Row="0" Grid.Column="0"/>
      <Border Margin="1" x:Name="bd2" 
              Grid.Row="0" Grid.Column="1"/>
      <Border Margin="1" x:Name="bd3" 
              Grid.Row="0" Grid.Column="2"/>
      <Border Margin="1" x:Name="bd4" 
              Grid.Row="0" Grid.Column="3"/>
      <Border Margin="1" x:Name="bd5" 
              Grid.Row="0" Grid.Column="4"/>
      <!--두번째 줄-->
      <Border Margin="1" x:Name="bd6" 
              Grid.Row="1" Grid.Column="0"/>
      <Border Margin="1" x:Name="bd7" 
              Grid.Row="1" Grid.Column="1"/>
      <Border Margin="1" x:Name="bd8" 
              Grid.Row="1" Grid.Column="2"/>
      <Border Margin="1" x:Name="bd9" 
              Grid.Row="1" Grid.Column="3"/>
      <Border Margin="1" x:Name="bd10" 
              Grid.Row="1" Grid.Column="4"/>
      <!--세번째 줄-->
      <Border Margin="1" x:Name="bd11" 
              Grid.Row="2" Grid.Column="0"/>
      <Border Margin="1" x:Name="bd12" 
              Grid.Row="2" Grid.Column="1"/>
      <Border Margin="1" x:Name="bd13" 
              Grid.Row="2" Grid.Column="2"/>
      <Border Margin="1" x:Name="bd14" 
              Grid.Row="2" Grid.Column="3"/>
      <Border Margin="1" x:Name="bd15" 
              Grid.Row="2" Grid.Column="4"/>
      <!--네번째 줄-->
      <Border Margin="1" x:Name="bd16" 
              Grid.Row="3" Grid.Column="0"/>
      <Border Margin="1" x:Name="bd17" 
              Grid.Row="3" Grid.Column="1"/>
      <Border Margin="1" x:Name="bd18" 
              Grid.Row="3" Grid.Column="2"/>
      <Border Margin="1" x:Name="bd19" 
              Grid.Row="3" Grid.Column="3"/>
      <Border Margin="1" x:Name="bd20" 
              Grid.Row="3" Grid.Column="4"/>
    </Grid>
    <ListBox Background="AliceBlue"
             x:Name="lstDB" 
             Margin="20,310,20,20"/>
  </Grid>
</Window>

구성은 4개의 버튼과 두개의 TextBlock 그리고 4행5열을 가진 그리드와 리스트박스를 가지는 그리드 한개로 구성된다.

정리 : Top,Bottom등의 위치와 margin등을 지정하는건 parent를 기준으로 한다.

텍스트블록의 위치는 버튼의 사이이며 위 박스엔 날짜를 아래박스엔 시간을 표시할 예정이다.

 

다음시간엔 구현해 볼 예정이다.

'VS-02분반수업' 카테고리의 다른 글

VP(22-05-20)  (0) 2022.05.24
VP02(22-05-13)  (0) 2022.05.17
VP(22-05-06)  (0) 2022.05.08
VP(22-05-04)  (0) 2022.05.08
VS02(22-05-01)  (0) 2022.05.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함