2011-12-01 3 views
2

스택 오버플로를 살펴본 결과 거의이 문제를 해결할 수는 있지만 실제로는 해결되지 않은 몇 가지 게시물을 보았습니다. 구체적으로 말하자면 3 개 또는 4 개의 디스플레이가있는 사용자에게 배포되는 응용 프로그램을 말하고 있으며 응용 프로그램은 시작할 때 어느 것을 표시할지 기억하고 싶습니다.Wpf 응용 프로그램 - 응용 프로그램을 저장하고로드하는 방법

WPF 응용 프로그램이 있는데 양식이 OnClose 인 경우 화면을 저장하고 싶습니다. 그런 다음로드 할 때 해당 응용 프로그램을 해당 화면에 넣고 싶습니다.

해커 Win32 API 호출없이 어떻게 수행 할 수 있습니까?

편집 : 이전 StackO 게시 누군가가 같은 일을 언급에서 : 나는 screen이 있으면 내가 할 수있는 유일한 것은 기본 화면이나하지 중 응용 프로그램이 있는지 여부를 확인 것 같다

var screen = System.Windows.Forms.Screen.FromRectangle(
    new System.Drawing.Rectangle(
    (int)myWindow.Left, (int)myWindow.Top, 
    (int)myWindow.Width, (int)myWindow.Height)); 

. 어느 쪽이 좋을까요 ... 사용자가 2 개의 화면 만 가지고 있지만 3 개 이상인 경우 좋지 않습니다. 이 결과가 screen이라는 결과로 더 나은 것을 얻을 수 있습니까?

+1

"hacky Win32 API 호출"없이는 현재 화면을 가져올 방법이 없다고 생각합니다. 존재할 수있는 유일한 방법은 누군가가 C# 함수를 실행하는 멋진 프레임 워크를 구축하고 C# 함수가 배후에서 "해시 Win32 API 호출"을 수행하는지 여부입니다. 아, 잠깐, .NET Framework입니다. :) – Alxandr

+1

App.xaml.cs를 사용하면 특정 화면으로 이동할 수 있습니다. 나는 WPF가 메인을 로딩하지 않기 때문에 다른 포스트를 생각해 낸다. 그래서 당신이 숨길 메인이 필요할지도 모른다. – Paparazzi

답변

2

메모리에서 또한

http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.allscreens.aspx

, 생각 이것은 여러 모니터에서 작동합니다.

+0

왼쪽 및 위쪽으로 창을 저장하는 것이 옳습니다. 이상한 점은 멀티 모니터 디스플레이 (동일한 해상도의 2 개 화면)에서 이것이 제대로 작동하고 어떤 화면을 기억하는지입니다. 그러나 세 번째 화면에 다른 해상도로 추가하는 순간 모두 중단됩니다. – kmarks2

1

이전에 ViewManager 클래스, 사용자 정의 XML 구성 파일 및 MVVM으로 수행했습니다. 본질적으로 OnClose가 호출되면 ViewManager 클래스 (실제로 사용자 정의 ViewInfo 인스턴스의 컬렉션을 보유한 사용자 정의 클래스)가 폴링 (polled)되어 현재 열려있는 뷰와 순서가 정해져 있는지 확인합니다 (Ctrl + Tab)과 그 기록의 ID가 표시되고 있었던 것. 이 응용 프로그램은 Entity Framework를 사용하여 데이터베이스 데이터에 액세스했으며 각 응용 프로그램보기는 레코드 모음 또는 특정 유형의 단일 레코드에 매핑되었습니다.

아무튼 XML 출력에는 뷰의 이름, 해당 응용 프로그램에 속한 응용 프로그램 (내부적으로 응용 프로그램이라고하는 여러 부분이 있음),로드 된 레코드에 대한 정보 등이 포함됩니다.

프로그램을로드 할 때 자동으로로드되는보기는 잠재적으로 다른 모든보기가 포함 된 HomeView입니다. ViewManager는 XML 파일을 검사하고 컨텐츠를 기반으로 뷰를로드합니다. 이 작업은 옵션 화면에서 해제 할 수 있으므로 사용자는 원하는 경우 입력 할 때 깨끗한 작업 영역이 표시됩니다. 앱을로드 할 때 당신은 당신의 창 왼쪽과 위쪽 위치를 저장하고 복원하는 경우가 Screen.AllScreens 속성에서 여러 대의 모니터에 대한 자세한 정보]를 얻을 수 있습니다

+0

고마워, 나는 이것을 시험해 보려고한다. – kmarks2

관련 문제