2009-09-09 11 views
4

.Net에서 폼을 만들면 세로 레이아웃의 대화 상자로 나타납니다.Windows 폼 회전

아무도 일반적으로 옆이나 거꾸로 읽는 것을 좋아하지 않지만 양식을 회전시키는 매우 유효한 이유가 있습니다.

누구나 Windows Vista에서 C#을 사용하는 방법을 알고 계십니까?

+5

어쩌면 당신은 당신의 특별한 필요에 대해 이것을 회전시킬 수 있습니다. 귀하의 문제를 해결할 것이라고 말하지는 않지만 소프트웨어는 태블릿에서 실행되며 모든 태블릿은 비디오 카드 드라이버를 통해 화면 회전을 처리합니다. 그냥 당신이 바퀴를 reinventing하지 않도록하고 싶어요 –

+0

고마워. 나는 태블릿 PC와 비슷한 애플리케이션을 가지고 있지만 비스타 PC는 아니다. 그렇습니다. 화면을 회전시키는 것은 합리적인 대안 일 것입니다..NET, C#, Vista에서이 작업을 수행하는 방법을 모르겠습니다. 내가 본 대부분의 화면 회전은 WinCe 등에서 지원됩니다. –

답변

2

WinForms에 있어야합니까? 이것은 회전 변환을 사용하여 WPF에서 매우 쉽게 수행 할 수 있습니다. 아쉽게도 WPF와의 WindowsFormsHost 통합은 회전 변환을 허용하지 않습니다.

편집 지금, 이해

, 문제의 형태는 포스터의 통제 불능이다. WPF에서 컨트롤을 작성해도 문제가 해결되지 않습니다.

+0

WPF는 제목 표시 줄과 창 컨트롤 등을 포함한 전체 양식을 회전시킵니다. – MusiGenesis

+0

고맙습니다. 더 명확하게하기 위해 WPF 프로젝트에서 새로운 프로세스로 시작하는 제 3 자 프로그램이 있습니다. 제 3 자 프로그램이 설계된 방식을 제어 할 수는 없습니다. 나는 마우스 및 kbrd 시뮬레이션을 통해 그것과 상호 작용합니다. 하지만 전체 창을 회전해야합니다. WPF 창에서 타사 프로그램을 실행할 수 있습니까? 애니메이션 (회전, 번역 등)을 사용할 수 있습니까? 답변 해 주셔서 다시 한 번 감사드립니다. –

1

은 어쩌면이 하나가 당신을 도울 수있는, 내가 가지고이 추가 약간의 작업이 될 것입니다,하지만 당신은 주로 단지 형태의 내용을 필요로하는 경우 회전 (아닌 전체 창 제목을 포함 할 similar question

+1

아니요, Windows Mobile에서만 작동합니다 (일반 Windows에서는 작동하지 않는 Microsoft.WindowsCE.Forms를 사용함). 나는 알아야한다. 나는 그 질문에 대답했다. :) – MusiGenesis

+0

+1 다시 한번 감사드립니다! – OrElse

0

bar, window controls 등)을 사용하면, 대신에 owner-drawn usercontrol을 90도 회전 시켜서 일반 형식으로 놓을 수 있습니다. Graphics 객체에서 RotateTransform을 수행 한 다음 모든 것을 정상적으로 그릴 수 있기 때문에 모든 도면을 조정할 필요조차 없습니다.

전체 양식을 회전해야하는 경우 양식을 경계선에 넣은 다음 기본적으로 똑같은 작업을 수행하여 제목 표시 줄과 창을 직접 그릴 수 있습니다.

업데이트는 :

이 일반 윈도우 (안 윈도우 모바일)입니다

http://msdn.microsoft.com/en-us/library/ms812499.aspx

, 그것은 작동해야하므로 : 여기에 C#에서 전체 화면을 회전하는 방법을 보여줍니다 MSDN 문서에 대한 링크입니다 당신의 돌고래를 위해, 비록 당신의 응용 프로그램의 형태뿐만 아니라 모든 Windows를 회전시킬지라도. 이 작업 속도와 전반적인 요구 사항에 따라 응용 프로그램이 포커스를 얻으면 화면을 90도 회전 한 다음 응용 프로그램이 포커스를 잃었을 때 화면을 보통으로 되돌릴 수 있습니다.

업데이트 2 : 방금 ​​질문과 의견을 다시 읽었습니다. 별도의 프로세스에서 별도의 응용 프로그램 창을 회전시키는 것에 대해 이야기하고 있으므로 WPF는 으로 명확하게 여기에 도움이되지 않습니다. MSDN 링크가 필요할 수도 있습니다. 응용 프로그램에서 화면을 90도 회전 한 다음 별도의 프로세스에서 다른 응용 프로그램을 시작합니다. 이 기능은 별도의 응용 프로그램 창을 최대화하도록 강요 할 수있는 경우 가장 효과적입니다. FindWindow 및 SendMessage API를 P/호출하여 수행 할 수 있습니다 (컴퓨터를 일종의 키오스크에 놓을 수도 있습니다) 모드). 기본적으로 다른 응용 프로그램을 차단 호출로 시작하는 프로세스 코드 버전이 있습니다. 즉, 응용 프로그램이 다시 시작하기 전에 셸 응용 프로그램이 닫힐 때까지 대기합니다. 앱이 닫히면 화면을 원래 방향으로 되돌릴 수 있습니다.

+0

고마워요 ... 위의 내 의견에서 보듯이 경계선없는 타사 프로그램이 있습니다. 전체 창을 회전시킬 수 있다면 greate 될 것입니다. System.Drawing.Graphics를 시도했지만 회전/방향을 지원하지 않는 것 같습니다. 다시 한번 감사드립니다. –