我在运行时构建了一个画布,并为鼠标操作分配了事件处理程序,并且运行良好。然后我决定要在它周围设置一个边框,这样就创建了一个边框,阻止了处理程序的工作。
我尝试过:
obj_MouseLeftButtonDown只是调用一个消息框,所以我可以测试一切。 有谁知道为什么我不能在画布上触发事件?
if (sender is Canvas)
{
Canvas obj = new Canvas();
obj.Name = "Container"+Objcount;
obj.Height = 100;
obj.Width = 100;
obj.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(obj_MouseLeftButtonDown);
obj.PreviewMouseLeftButtonUp += new MouseButtonEventHandler(obj_MouseLeftButtonUp);
obj.PreviewMouseMove += new MouseEventHandler(dragaround);
Border Border1 = new Border();
Border1.BorderThickness = new Thickness(5);
Border1.BorderBrush = Brushes.Gray;
Border1.Child = obj;
desk.Children.Add(Border1);
Thumb obj1 = new Thumb();
obj1.Name = "Thumb" + Objcount;
Canvas.SetRight(obj1, 0);
Canvas.SetBottom(obj1, 0);
obj1.DragDelta += new DragDeltaEventHandler(myThumb_DragDelta);
obj.Children.Add(obj1);
++Objcount;
}
答案 0 :(得分:1)
这很奇怪。在尝试各种各样的事情,评论代码,重新安排它等我关闭我的电脑,然后出去了一天。当我回来并再次解雇时,我设法让它发挥作用。我不知道如何,因为我回到我发布的原始代码,我的鼠标事件正在点击。不确定是否有其他任何人曾经有过这个,但对于那些正在经历这种事情的人只是尝试重启VS甚至你的电脑。我迷失了解释,但现在正在努力。谢谢你Gleb Sevruk提供了一些额外的尝试。