将事件处理程序从一个Canvas复制到另一个wpf

本文关键字:Canvas 一个 复制 wpf 另一个 程序 事件处理 | 更新日期: 2023-09-27 18:07:57

我有一个Canvas。后来在我的代码中,我创建了一个新的Canvas,它将在第一个Canvas的顶部,应该有一些第一个Canvas的属性。

我可以设置我想要的任何东西。剩下的就是将新CanvasMouseEnterMouseMove事件注册到与原Canvas注册到的事件处理程序中。

这是一种方法吗?我用谷歌搜索了一下,但没有找到我要找的东西。

例子:

private void OnMouseEnter(object sender, MouseEventArgs e)
{
     ////// some code
}
Canvas c = new Canvas();
c.MouseEnter += OnMouseEnter;
Canvas c2 = new Canvas();
///// I want to do something like this:
c2.MouseEnter = c.MouseEnter;

将事件处理程序从一个Canvas复制到另一个wpf

您是否正在寻找事件冒泡

Canvas canvas1 = new Canvas();
canvas1.Width = 200;
canvas1.Height = 200;
canvas1.Background = Brushes.Black;
canvas1.MouseDown += canvas1_MouseEnter;
Canvas canvas2 = new Canvas();
canvas2.Width = 100;
canvas2.Height = 100;
canvas2.Background = Brushes.Red;            
canvas1.Children.Add(canvas2); //canvas1 events will get fired for canvas2 also