대화 상자를 모달로 표시하는 방법은 없지만 숨기지 않고 모덜이 아닌 대화 상자로 변경하는 동안 표시되도록하려면 어떻게해야합니까?'부분적으로'모달 대화 상자를 만들려면 어떻게해야합니까?
대화 상자를 표시하는 방법을 차단하는 대화 상자를 표시하려고합니다. 그런 다음 사용자가 대화 상자에서 '마침'버튼을 클릭하면 내가 원하는 것입니다 :
- 대화 상자가 계속 표시됩니다.
- 대화 상자가 표시된 메서드로 돌아가려면 Ctrl 키를 누릅니다.
별도의 STA 스레드에서 대화 상자를 실행하고 '마침'을 누를 때까지 기본 UI 스레드를 차단하는 이벤트를 사용하여이 결과를 얻었지만이 방법에 대한 제한이 있습니다. 대화 상자가 표시되어있는 동안 '주'창의 닫기 버튼에, 대화 상자가 숨겨져있을 때 주 윈도우가 닫힙니다.
업데이트
지금까지 답변 해 주셔서 감사합니다. 죄송합니다 - 배경이 너무 넉넉하지 않고 균형이 맞지 않은 것처럼 보입니다.
이 양식은 사실상 모달 '마법사'대화 상자입니다.이 응용 프로그램은 주 응용 프로그램 앞에 모달로 표시되고 숨겨집니다. 따라서 사용자가 걱정하는 한 비표준 이상한 일은 없습니다. 유일한 차이점은 대화 상자가 UI 스레드의 일련의 콜백에 의해 구동된다는 것입니다. 그래서 평생 동안 ShowDialog를 호출하여이를 모달 화하지 않을 것이라고 생각하지 않습니다. 첫 번째 콜백은 대화 상자를 표시 한 다음 사용자가 대화 상자 UI를 통해 대화 상대를 설정하는 동안 차단해야합니다. 그런 다음 UI 스레드에서 다양한 다른 콜백이 수행되는 동안 대화 상자가 계속 표시되고 진행률 막대 페이지를 표시합니다. 결국 양식이 숨겨집니다. 양식이 실행되는 동안 사용자가 기본 창과 상호 작용하지 않습니다. 그들이 관여하는 한 주요 UI 스레드와 100 % 모달로 보일 것입니다.
(양식은 Visual Studio 마법사 용 대화 상자입니다.이 양식은 UI 스레드의 일련의 콜백에서 생성됩니다. 다른 방법으로는 대화 상자를 표시하고 숨기고 즉시 최상위 '진행률'양식을 표시 한 다음 숨길 수 있습니다. 단 하나의 대화 상자를 표시하는 것이 사용자에게 더 자연스러운 경험이라고 생각합니다.
다시 말씀 드리지만 혼란 스럽습니다.
당신은 불투명도와 조심해야합니다, 그것은 원격 데스크톱 및 일부 (그래도 쓰레기) 비디오 카드를 통해 실패 할 수 있습니다 – johnc