C# 另一个按钮的模板内的按钮
我创建了一个看起来像平铺的按钮模板: 当用户单击互动程序时,它会像这样展开: 问题是,当用户单击互动程序内的按钮时,会触发互动程序按钮的单击处理程序以及模板内按钮的处理程序 一个超级简单的例子是: XAML:C# 另一个按钮的模板内的按钮,c#,wpf,xaml,templates,button,C#,Wpf,Xaml,Templates,Button,我创建了一个看起来像平铺的按钮模板: 当用户单击互动程序时,它会像这样展开: 问题是,当用户单击互动程序内的按钮时,会触发互动程序按钮的单击处理程序以及模板内按钮的处理程序 一个超级简单的例子是: XAML: 如果用户点击了“内部”按钮,有没有办法不处理“外部”点击事件?使用HighCore和dev hedgehog留下的评论,这解决了我的问题: private void Inner_Click(object sender, RoutedEventArgs e) { MessageBox
如果用户点击了“内部”按钮,有没有办法不处理“外部”点击事件?使用HighCore和dev hedgehog留下的评论,这解决了我的问题:
private void Inner_Click(object sender, RoutedEventArgs e) {
MessageBox.Show("Inner!");
e.Handled = true;
}
您可以使用
PreviewMouseLeftButtonDown
而不是单击
,然后设置e.Handled=true代码>只需在单击第一次出现的位置处理它,不要让它向上传播VisualTree。要在显示消息“inner!”时在内部处理程序中进行总结,只需设置e.Handled=true。就是这样。在我的例子中,当我点击前景中的按钮时,它首先触发背景中按钮的代码。我该如何扭转局面?
private void Outer_Click(object sender, RoutedEventArgs e) {
MessageBox.Show("Outer!");
}
private void Inner_Click(object sender, RoutedEventArgs e) {
MessageBox.Show("Inner!");
}
private void Inner_Click(object sender, RoutedEventArgs e) {
MessageBox.Show("Inner!");
e.Handled = true;
}