» [WPF] UserControl

[WPF] UserControl

by DUBUKIMCH

UserControl이란?

UserControl은 WPF에서 사용자 정의 컨트롤을 생성하는 데 사용됩니다. 사용자 정의 컨트롤은 애플리케이션의 여러 곳에서 반복적으로 사용되는 복합 UI 요소를 캡슐화하여 재사용 가능한 컴포넌트를 만듭니다. 예를 들어, 사용자 정보 표시 UI를 여러 곳에서 동일하게 사용해야 할 때 UserControl로 만들어 사용하면 유지보수가 쉽고 코드가 깔끔해집니다.

UserControl 사용 방법

  1. UserControl 생성: WPF 프로젝트에서 새로운 UserControl을 추가합니다.
  2. XAML 레이아웃: UserControl의 UI를 정의합니다.
  3. 코드 비하인드: UserControl의 기능을 코드 비하인드 파일에 작성합니다.
  4. MainWindow에서 사용: MainWindow 또는 다른 뷰에서 UserControl을 불러와 사용합니다.

예제 코드

다음은 UserControl을 만들어 MainWindow에서 사용하는 예제입니다.

1. UserControl 생성: UserInfoControl.xaml

<UserControl x:Class="WpfApp.UserInfoControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Width="300" Height="100">
    <Grid>
        <StackPanel>
            <TextBlock Text="User Name:"/>
            <TextBox x:Name="UserNameTextBox" Width="200"/>
            <Button Content="Submit" Click="OnSubmitClick" Width="100" Margin="0,10,0,0"/>
        </StackPanel>
    </Grid>
</UserControl>

2. UserControl 코드 비하인드: UserInfoControl.xaml.cs

using System.Windows;
using System.Windows.Controls;

namespace WpfApp
{
    public partial class UserInfoControl : UserControl
    {
        public UserInfoControl()
        {
            InitializeComponent();
        }

        private void OnSubmitClick(object sender, RoutedEventArgs e)
        {
            MessageBox.Show($"User Name: {UserNameTextBox.Text}");
        }
    }
}

설명

  • UserControl XAML: StackPanel 내부에 TextBlock, TextBox, 그리고 Button을 포함한 간단한 UI 레이아웃을 정의했습니다.
  • UserControl 코드 비하인드: ButtonClick 이벤트를 처리하는 OnSubmitClick 메서드는 TextBox의 내용을 읽어 메시지 박스에 표시합니다.

3. MainWindow에서 UserControl 사용: MainWindow.xaml

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApp"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <local:UserInfoControl HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Grid>
</Window>

실행 결과

설명

  • MainWindow.xaml: local 네임스페이스를 추가하여 프로젝트 내의 UserInfoControl을 참조하고, Grid에 추가하여 중앙에 배치했습니다.

UserControl의 장점

  • 재사용성: 여러 곳에서 동일한 UI 및 기능을 반복하여 사용할 수 있습니다.
  • 모듈화: 복잡한 UI 요소를 별도의 컨트롤로 나누어 관리함으로써 유지보수가 용이합니다.
  • 캡슐화: UserControl 내의 코드는 독립적이며, 외부에서 수정 없이 사용될 수 있습니다.

You may also like

Leave a Comment

error: Content is protected !!