나는 캔버스 (다른 컨테이너 내에 있지만 중요하지 않음)에 Rectangle
이있는 매우 간단한 테스트 컨트롤을 만들었습니다. Rectangle
에는 마우스 작동 중지, 마우스 이동 및 마우스 작동을위한 이벤트 핸들러가 있습니다. Rectangle의 MouseLeftButtonDown 이벤트에서 마우스를 캡처하면 해당 MouseLeftButtonUp 이벤트를받지 못합니다.마우스 캡처 후 Silverlight 마우스 이벤트가 손실됩니까?
일부 코드 :
private void rect1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (_captured = CaptureMouse())
{
_offset = new Point(Canvas.GetLeft(rect1), Canvas.GetTop(rect1));
_origin = e.GetPosition(RootCanvas);
e.Handled = true;
}
}
private void rect1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (_captured)
{
ReleaseMouseCapture();
_captured = false;
e.Handled = true;
}
}
난 그냥 확실히 그 중 하나는 어떻게 든 마우스 업 이벤트를 받고되지 않았습니다 할뿐만 아니라 컨테이너 요소에 대한 이벤트 처리기를 부착,하지만 그들 중 누구도 없었다. Silverlight에서 아직 배운 적이 없다는 기대가 있습니까?
WPF 응용 프로그램에서 비슷한 문제가 발생했는데 다른 마우스 단추를 눌렀을 때 마우스를 잡으려고 시도하면서이를 닫습니다. 왼쪽 버튼을 누르는 것 외에는 아무런 효과가 없다는 것을 깨달은 나는 그 방법을 포기하고 더 이상 문제를 조사하지 않았다. – ChrisF