0
WPF 응용 프로그램의 클래스에서 두 개의 동일한 동그라미를 만들고 같은 이벤트를 양쪽에 할당하려고합니다. 그러나 그 중 하나에서만 이벤트 핸들러가 작동하지만 다른 이벤트 핸들러에서는 작동하지 않습니다. 두 개의 다른 이름을 가진 동일한 이벤트 핸들러를 구현하려고 시도했지만 여전히 동일하게 발생합니다. 다음 코드와 관련하여 잠재적 인 문제는 무엇입니까?이벤트 처리기가 부분적으로 작동합니다
SmallCircle leftCircle1 = new InputCircle(Brushes.Yellow, 7, 7);
Ellipse s1Ellipse = leftCircle1.thisEllipse;
rectCanvas.Children.Add(s1Ellipse);
SmallCircle leftCircle2 = new InputCircle(Brushes.Yellow, 7, 7);
Ellipse s2Ellipse = leftCircle2.thisEllipse;
rectCanvas.Children.Add(s2Ellipse);
s1Ellipse.MouseLeftButtonDown += new MouseButtonEventHandler(input_MouseLeftButtonDown1);
s2Ellipse.MouseLeftButtonDown += new MouseButtonEventHandler(input_MouseLeftButtonDown1);
s3Ellipse.MouseLeftButtonDown += new MouseButtonEventHandler(output_MouseLeftButtonDown1);
private void output_MouseLeftButtonDown1(object sender, MouseButtonEventArgs e)
{
rectCanvas.MouseLeftButtonDown -= Canvas_MouseLeftButtonDown;
rectCanvas.MouseLeftButtonUp -= Canvas_MouseLeftButtonUp;
rectCanvas.MouseMove -= Canvas_MouseMove;
nodeComb.lineCreated = true;
Point StartPosition = e.GetPosition(sender as UIElement);
nodeComb.initialPoint = StartPosition;
}
private void input_MouseLeftButtonDown1(object sender, MouseButtonEventArgs e)
{
if (nodeComb.lineCreated == true)
{
Point EndPosition = e.GetPosition(sender as UIElement);
nodeComb.endingPoint = EndPosition;
nodeComb.createLine();
nodeComb.lineCreated = false;
}
}
특히 s2Ellipse 이벤트 핸들러는 작동하지만 s1Ellipse는 작동하지 않습니다. 아래쪽 만 입력 원 (S2)
는 처리기 수신 상기하지 않는다. 정말 이상합니다!
왜 이벤트가 s1에 의해 해고되기를 기대합니까? –
둘 중 하나에 끝나는 선을 그리려면 두 도형을 동일한 이벤트를 "수신 대기"해야합니까? 주문을 변경하더라도 s2 만 실행됩니다. – arjacsoh
결과 GUI 이미지를 표시 할 수 있습니까? –