2016-06-23 5 views
0

Dev 팀 (VSIX 솔루션) 용 Visual Studio 확장 프로그램을 작성하고 있습니다. 사용자가 확장 기능을 활성화하면 매우 간단한 WPF 창 형식을 갖게됩니다. 윈도우는 다음과 같은 코드를 사용하여로드되고이 열리고 사용자 채우고있는 형태를 표시WPF 창 텍스트 상자 - 다른 창에 영향을주는 텍스트 편집

var myWindow = new SomeWpfWindow(myArgs) 
{ 
    Owner = Application.Current.MainWindow 
}; 
myWindow.Show(); 

폼 DataContext를 결합 양방향을 거쳐 텍스트 박스를 많이 갖는다.. 너무 평범한 것이 아닙니다.

음, 따로 텍스트 상자 동작에서 ....

나는 텍스트 상자에 문자를 입력

("어쩌구 저쩌구") 나는 텍스트 상자에 표시 이러한 문자를보고, 그들은 또한 기록 얻을 바인딩 된 DataContext 속성

그러나. 백 스페이스 또는 삭제 단추를 누르면 TextBox의 텍스트는 변경되지 않고 대신 뒤에있는 창 (이 경우 활성 코드 파일)이 편집됩니다. 이상적인 동작이 아닙니다.

.Show() 대신 .ShowDialog()를 사용하여이 문제를 해결했지만 올바른 수정 프로그램입니까, 아니면 그냥 문제를 묻는 것입니까?

감사

+0

참고 : 활성 문서 탭 경우 내가 그것을 윈도우의 텍스트 상자에서 유형을 코드 창을 열고 (예 : C#을 페이지)를 입력 한 후 때 ,하지만 백 스페이스 나 Delete 버튼을 누르면 코드 파일에서 텍스트가 제거됩니다. 그러나 활성 문서 탭이 코드 파일 (예 : 소스 제어 탐색기)이 아닌 경우 모든 수정 사항은 Window의 TextBox에 적용됩니다. – DrGriff

답변

0

용액 문제가 해결 상술하지만, 완전한 용액이 아니었다. 내가 찾은 것은 WPF Dialog Window를 닫은 후에 열린 솔루션에서 C# 창에 입력 할 수 있었지만 Delete 또는 백 스페이스로 텍스트를 제거 할 수 없었습니다. 또한 Visual Studio를 닫으려고하면 다음과 같은 경고가 나타납니다.

Microsoft Visual Studio에서 작업이 차단되었음을 감지했습니다. 사용자 입력. 활성 모달 대화 상자 또는 사용자 상호 작용을 차단해야하는 작업이 원인 일 수 있습니다. 그래도 을 종료 하시겠습니까?

이에 대한 해결책에 대해 다음 게시물을 참조하십시오 : WPF modal window in Visual Studio Extension blocking input

1

VS 진짜로 당신의 창에 대해 알고하지 않습니다, 당신은 acceleratory 키와 명령 라우팅 문제로 실행됩니다.

이 작업을 수행하는 적절한 방법은 모달 대화 상자를 구현하는 것입니다 (Microsoft.VisualStudio.PlatformUI.DialogWinodow와 관련된 다른 게시물을 참조하십시오).

또는 툴바를 구현해야합니다. 감사

, 상기 제공된

+0

DialogWindow를 사용하면이 문제를 해결할 수 있습니다. – DrGriff