카테고리 없음

WPF) 기능별로 정리된 깔끔한 XAML 코드 요청 GPT 프롬프트

joo_coding 2025. 7. 23. 12:43

*나는 "기능별로 정리된 깔끔한 XAML 형식" 이라고 지정 해두었음

 

📌 “기능별로 정리된 깔끔한 XAML 형식으로 만들어줘. 각 UI 영역을 Grid.RowDefinitions로 나누고, 주석은 이모지와 함께 구역별로 달아줘. StackPanel, GroupBox, Border 등을 써서 레이아웃 정돈되게 구성해줘.”

 

가장 간단하게 말하는 방법

“지난번처럼 기능별로 주석 정리된 깔끔한 XAML 코드로 만들어줘”


조금 더 명확하게 말하는 방법

“각 기능별로 주석이 달려 있고 Grid.RowDefinitions, StackPanel, GroupBox 등을 사용한 깔끔한 WPF UI XAML 코드 형식으로 만들어줘”


구체적인 예시

“Mic 설정 화면을 만들고 싶은데, 지난 MachineEar 마이크 UI처럼 정리된 형식으로 부탁해”
“파형 그리는 구역이 따로 있는 WPF UI를 기능별로 구역 정리해서 XAML로 작성해줘”
“WPF 화면을 작성해줘. 각 구역마다 한 줄 주석으로 설명 달아줘. 지난번처럼 깔끔한 구조로”


📌 핵심 키워드 요약 (이 단어들이 포함되면 정확히 이해 가능)

포함하면 좋은 표현효과
기능별 주석 UI 구역별 설명 주석 생성
Grid.RowDefinitions 레이아웃을 행 기준으로 나눔
StackPanel, GroupBox, Border 정돈된 배치와 시각적 구분
지난번 MachineEar처럼 지금 대화와 동일한 스타일로 생성
깔끔한 XAML 코드 일관성 있게 정리된 코드 구성

 

https://chatgpt.com/share/688059b5-345c-8005-98bf-d69824b4fccf

<Window x:Class="MachineEar_MIC.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MachineEar_MIC" Height="700" Width="400">
    <Grid Margin="10">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/> <!-- Network 설정 -->
            <RowDefinition Height="Auto"/> <!-- Input 방식 -->
            <RowDefinition Height="Auto"/> <!-- Mic ID or 파일 선택 -->
            <RowDefinition Height="Auto"/> <!-- 파일명 출력 -->
            <RowDefinition Height="Auto"/> <!-- mic 레벨바 -->
            <RowDefinition Height="Auto"/> <!-- waveform -->
            <RowDefinition Height="Auto"/> <!-- 서버 상태 -->
        </Grid.RowDefinitions>

        <!-- 🔌 네트워크 설정 -->
        <GroupBox Header="Network Connection" Grid.Row="0" Margin="0,0,0,10">
            <Grid Margin="10">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="50"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="70"/>
                    <ColumnDefinition Width="70"/>
                </Grid.ColumnDefinitions>

                <Label Content="IP" Grid.Row="0" Grid.Column="0"/>
                <TextBox x:Name="textbox_ip" Grid.Row="0" Grid.Column="1" Height="25"/>

                <Label Content="PORT" Grid.Row="1" Grid.Column="0"/>
                <TextBox x:Name="textbox_port" Grid.Row="1" Grid.Column="1" Height="25"/>

                <Label Content="MAC" Grid.Row="2" Grid.Column="0"/>
                <TextBox x:Name="textbox_mac" Grid.Row="2" Grid.Column="1" IsReadOnly="True" Height="25"/>

                <Button x:Name="btn_connect" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" Content="연결" Margin="5" Click="connect_btn_click"/>
                <Button x:Name="btn_disconnect" Grid.Row="2" Grid.Column="2" Content="해제" Margin="5" Click="btn_disconnec_Click"/>
            </Grid>
        </GroupBox>

        <!-- 🎙️ 입력 방식 -->
        <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0,0,0,10" HorizontalAlignment="Center">
            <Label Content="Input: " VerticalAlignment="Center"/>
            <RadioButton x:Name="radio_mic" Content="Mic" Checked="radio_mic_Checked" Margin="10,0"/>
            <RadioButton x:Name="radio_csv" Content="Wav" Checked="radio_csv_Checked"/>
        </StackPanel>

        <!-- 🎛️ Mic Combo or 파일 선택 -->
        <StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,0,0,10">
            <Label Content="MIC ID" VerticalAlignment="Center" Margin="0,0,5,0"/>
            <ComboBox x:Name="ComboBox_mic" Width="120" DropDownClosed="ComboBox_mic_DropDownClosed"/>
            <Button x:Name="btn_browse" Content="불러오기" Width="75" Margin="10,0" Click="btn_mac_connect_Click"/>
        </StackPanel>

        <!-- 📁 선택한 파일명 -->
        <Border Grid.Row="3" BorderBrush="Black" BorderThickness="1" Padding="5" Margin="0,0,0,10">
            <TextBlock x:Name="label_FileName" Text="파일명 없음" TextWrapping="Wrap" />
        </Border>

        <!-- 📶 mic 레벨바 -->
        <StackPanel Grid.Row="4" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,0,0,10">
            <TextBlock Text="🎤" FontSize="20" Margin="0,0,10,0" VerticalAlignment="Center"/>
            <ProgressBar x:Name="micLevelBar" Width="220" Height="20" Minimum="0" Maximum="100" VerticalAlignment="Center"/>
            <TextBlock x:Name="decibelText" Text="0 dB" Margin="10,0" VerticalAlignment="Center"/>
        </StackPanel>

        <!-- 📈 파형 표시 -->
        <Border Grid.Row="5" BorderBrush="Black" BorderThickness="1" Height="100" Margin="0,0,0,10">
            <Canvas x:Name="canvas_waveform" Background="White"/>
        </Border>

        <!-- 🌐 서버 접속 상태 -->
        <StackPanel Grid.Row="6" Orientation="Horizontal" HorizontalAlignment="Right">
            <Label Content="서버 상태:" VerticalAlignment="Center"/>
            <Ellipse x:Name="ellipse_status" Width="15" Height="15" Fill="Gray" Stroke="Black" Margin="5,0"/>
            <TextBlock x:Name="text_status" Text="Disconnected" VerticalAlignment="Center"/>
        </StackPanel>

    </Grid>
</Window>