using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace RoutedEventSample { /// /// MainWindow.xaml에 대한 상호 작용 논리 /// public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Window_Click(object sender, RoutedEventArgs e) { tb3.Text = $"[{DateTime.Now.ToString("HH:mm:ss")}] Click event is bubbled to window"; Thread.Sleep(1000); } private void spBubbling_Click(object sender, RoutedEventArgs e) { tb2.Text = $"[{DateTime.Now.ToString("HH:mm:ss")}] Click event is bubbled to stack panel"; //e.Handled = true; // prevent to bubble the event Thread.Sleep(1000); } private void btnBubbling_Click(object sender, RoutedEventArgs e) { tb1.Text = $"[{DateTime.Now.ToString("HH:mm:ss")}] Button is clicked"; Thread.Sleep(1000); } private void Window_PreviewMouseDown(object sender, MouseButtonEventArgs e) { MessageBox.Show("PreviewMouseDown at window"); } private void spTunneling_PreviewMouseDown(object sender, MouseButtonEventArgs e) { MessageBox.Show("PreviewMouseDown at stack pannel"); } private void btnTunneling_PreviewMouseDown(object sender, MouseButtonEventArgs e) { MessageBox.Show("PreviewMouseDown at button"); } } }