WPF 컨트롤 배치(설정 화면 만들기)

wsung·2026년 2월 4일

사용할 컨트롤
TextBlock(라벨)
TextBox(입력)
CheckBox
ComboBox
Button
GroupBox

기본 설정화면 구조

  • Grid로 나눠서 만들기
<Window x:Class="WpfStudy.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        Title="설정 화면"
        Width="500" Height="350">

    <Grid Margin="10">
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <!-- 상단 영역 -->
        <Grid Grid.Row="0">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>

            <!-- 통신 설정 -->
            <GroupBox Header="통신 설정" Margin="0,0,0,10">
                <Grid Margin="10">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="Auto"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>

                    <TextBlock Text="포트"
                               Grid.Row="0" Grid.Column="0"
                               VerticalAlignment="Center"
                               Margin="0,0,10,0"/>

                    <ComboBox Grid.Row="0" Grid.Column="1"
                              Width="150">
                        <ComboBoxItem Content="COM1"/>
                        <ComboBoxItem Content="COM2"/>
                        <ComboBoxItem Content="COM3"/>
                    </ComboBox>

                    <TextBlock Text="속도"
                               Grid.Row="1" Grid.Column="0"
                               VerticalAlignment="Center"
                               Margin="0,10,10,0"/>

                    <TextBox Grid.Row="1" Grid.Column="1"
                             Width="150"
                             Margin="0,10,0,0"
                             Text="115200"/>
                </Grid>
            </GroupBox>

            <!-- 옵션 -->
            <GroupBox Header="옵션" Grid.Row="1">
                <StackPanel Margin="10">
                    <CheckBox Content="자동 연결" Margin="0,0,0,5"/>
                    <CheckBox Content="로그 저장"/>
                </StackPanel>
            </GroupBox>
        </Grid>

        <!-- 하단 버튼 -->
        <StackPanel Grid.Row="1"
                    Orientation="Horizontal"
                    HorizontalAlignment="Right"
                    Margin="0,10,0,0">
            <Button Content="적용"
                    Width="90"
                    Margin="0,0,10,0"/>
            <Button Content="취소"
                    Width="90"/>
        </StackPanel>
    </Grid>
</Window>

profile
0부터 시작하는 백엔드

0개의 댓글