실패합니다.Mouse.Capture 내가 창을 표시하고 전화 false를 반환 및 WPF에서 모달 대화 상자를 시뮬레이트하기 위해
Mouse.Captured
은 null
입니다. dialogBoxArea.Visibility
은 Visibility.Visible
입니다. dialogBoxArea.IsEnabled
은 true
입니다.
회선을 다시 호출하면 true
을 반환하고 올바르게 마우스를 캡처합니다.
캡쳐가 작동하지 않는 것은 어떤 조건입니까?
편집
는 여기에 지금까지 시도했습니다거야.
if (Mouse.Captured != null)
{
// Not called, so presumably, nothing has already captured the mouse
MessageBox.Show("already captured");
}
if (dialogBoxArea.Visibility != Visibility.Visible)
{
// Not called
MessageBox.Show("not visible");
}
if (!dialogBoxArea.IsEnabled)
{
// Not called
MessageBox.Show("not enabled");
}
// According to documentation, this should release mouse capture from anything that holds it
Mouse.Capture(null);
// Attempt to capture the mouse
if (!Mouse.Capture(dialogBox, CaptureMode.SubTree))
{
// This is called
Mouse.Capture(null);
Mouse.Capture(dialogBox, CaptureMode.SubTree);
}
아마도 마우스가 이미 다른 것으로 캡처 된 것일 수 있습니다. 어떻게 부르니? –
NET 소스 코드를 설치 한 다음 Mouse.Capture로 추적 할 수 있습니다. http://weblogs.asp.net/rajbk/archive/2010/04/21/setting-up-visual-studio-2010-to-step-into-microsoft-net-source-code.aspx .... 또는 소스 코드를보고 시각적으로 확인하십시오 .... 또는 NET Reflector를 사용하여 IL을 디 컴파일하고 좋은 근사값을 얻으십시오 ..... 여기 캡처 기능이 있습니다 ... http://www.orbifold.net/default/ uielementisvisible-returns-false/... 아마도 mouseinputProvider와 관련이 있습니다. –
@ 500-InternalServerError, 지금까지 시도한 코드를 추가했습니다. 그것은 내가 마우스를 잡은 다른 사람이 없다고 믿게한다. –