30
1. UserControl 생성:
2. UserControl 코드 비하인드:
3. MainWindow에서 UserControl 사용:
UserControl이란?
UserControl은 WPF에서 사용자 정의 컨트롤을 생성하는 데 사용됩니다. 사용자 정의 컨트롤은 애플리케이션의 여러 곳에서 반복적으로 사용되는 복합 UI 요소를 캡슐화하여 재사용 가능한 컴포넌트를 만듭니다. 예를 들어, 사용자 정보 표시 UI를 여러 곳에서 동일하게 사용해야 할 때 UserControl
로 만들어 사용하면 유지보수가 쉽고 코드가 깔끔해집니다.
UserControl 사용 방법
- UserControl 생성: WPF 프로젝트에서 새로운 UserControl을 추가합니다.
- XAML 레이아웃: UserControl의 UI를 정의합니다.
- 코드 비하인드: UserControl의 기능을 코드 비하인드 파일에 작성합니다.
- 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 코드 비하인드:
Button
의Click
이벤트를 처리하는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 내의 코드는 독립적이며, 외부에서 수정 없이 사용될 수 있습니다.