728x90
반응형
버튼 안에 버튼을 집어넣을 경우가 가끔 있습니다.
그럴 경우 다음과 같이 Button의 Content를 Grid나 StackPanel 등으로 감싼 뒤 내부에 Button을 넣어주면 됩니다.
이벤트 또한 외부 버튼과 똑같이 사용이 가능합니다.
xaml |
<Button Name="Btn1" Width="200" Height="200" Click="Button_Click"> <Button.Content> <Grid Width="200" Height="200"> <Label Content="버튼 1" HorizontalAlignment="Center" VerticalAlignment="Center"/> <Button Name="Btn2" Width="50" Height="50" Click="Button_Click" Content="버튼 2" Margin="10" HorizontalAlignment="Right" VerticalAlignment="Top"/> </Grid> </Button.Content> </Button> |
c# |
private void Button_Click(object sender, RoutedEventArgs e){ Button b = sender as Button; if(b == Btn1){ MessageBox.Show("버튼 1 클릭"); }else if(b == Btn2){ MessageBox.Show("버튼 2 클릭"); } } |
위와 같이 설정할 경우 내부 버튼의 이벤트를 동작시키면 외부 버튼의 이벤트도 같이 동작됩니다.
이럴 경우 e.Handled를 사용하여 내부 버튼 이벤트를 실행 후 이벤트를 끝내버립니다.
c# |
private void Button_Click(object sender, RoutedEventArgs e){ Button b = sender as Button; if(b == Btn1){ MessageBox.Show("버튼 1 클릭"); }else if(b == Btn2){ MessageBox.Show("버튼 2 클릭"); e.Handled = true; } } |
반응형
'프로그램 개발 > C#' 카테고리의 다른 글
[wpf] c# 코드로 Style 설정하기 - 1 : 같은 Resource Dictionary 사용 (0) | 2021.01.17 |
---|---|
[wpf] c# 코드로 Label 색 변경하기 (0) | 2021.01.10 |
[wpf] Dictionary 합과 정렬 (0) | 2020.12.26 |
[wpf] c# 코드로 Button Background 변경 (0) | 2020.12.14 |
[wpf] c# 코드로 Image Source 설정 (0) | 2020.12.13 |