728x90
<TabControl x:Name="TabControl">
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding}" Width="Auto" Margin="5 5 5 5"/>
<Image Source="/Images/close_icon.png" Width="15" Margin="20 0 0 0" MouseDown="CloseTabButton_Click"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.ItemContainerStyle>
private void CloseTabButton_Click(object sender, MouseButtonEventArgs e)
{
// 클릭한 이미지의 부모 TabItem 찾기
Image image = (Image)sender;
TabItem tabItem = FindParentTabItem(image);
if (tabItem != null)
{
// TabControl에서 해당 TabItem을 제거
TabControl.Items.Remove(tabItem);
}
}
private TabItem FindParentTabItem(DependencyObject child)
{
while (child != null)
{
if (child is TabItem)
{
return (TabItem)child;
}
child = VisualTreeHelper.GetParent(child);
}
return null;
}
아이콘 닫기 누르면 삭제하는거까지 구현했다.
728x90
'C# > C# WPF 실무' 카테고리의 다른 글
[C# WPF] UserControl 간 Event로 연결하기 (0) | 2023.10.11 |
---|---|
[C# WPF] 상단 메뉴바 만들기 (설정, 파일...) (1) | 2023.10.11 |
[C# WPF] 정규식을 이용하여 string에 특수문자 있는지 판단하기 (0) | 2023.10.10 |
[C# WPF] 윈도우 스타일(WindowStyle) None 상태에서 창 그림자 설정하기 (0) | 2023.10.06 |
[C# WPF] TreeView 새로고침 시 확장 상태 불러오기 (0) | 2023.10.05 |