자, 이제 첫 번째 WPF 프로젝트에 시간이 다가 왔습니다. :). Flex와 PureMVC를 사용하기 전에 RIA에서 프로젝트 설정이 중요한지 알고 있습니다. MVVM으로 작업하기로 결정했습니다. PRISM 프레임 워크로 작업하기로 결정했습니다. 응용 프로그램은 운영 체제와 비슷합니다. '쉘'(소규모 응용 프로그램의 경우 상위)이 있습니다. 더 작은 어플리케이션 모듈과 같은 것을 만들 계획입니다. 그래서 저는 이런 식으로 프로젝트 구조를 디자인 할 계획입니다.내 첫 번째 MVVM 응용 프로그램 아키텍처 설정
Module_A {뷰, 뷰 모델, 모델, 자산} 예를 계산기에 대한 // Module_B {뷰, 뷰 모델, 모델, 자산} // 노트북
등 내가 프리즘 문서를 읽고 나는이 모든 모듈을위한 parrent가 쉘 프로젝트 여야한다는 것을 알고 있으며, 이것이 나의 주요한 질문이다.
Parrent_Project {App.xaml, Bootstrapper.cs, Shell.xaml}
이 쉘 (운영 시스템과 같은) 배경 이미지를 전체 화면 할 것이기 때문에, 바로 일부 기능을 클릭합니다. Shell.xaml을위한 modulesXYZ와 같은 폴더 구조를 만들면 괜찮습니까? 좋은 구조로 프로젝트를 시작하고 조언을 환영합니다. 감사합니다
아마도 나는 분명하지 않았습니다. Shell을 사용하여 전체 화면이나 항상 맨 위에 놓는 것처럼 일부 기능 (MVVM 방식)을 추가 할 수 있습니까?
전체 키오스크 모드로 쉘을 만들고 싶습니다. 그리고 나는 folowing 코드로 그것에 대해 언젠가했다. 그러나 alt + tab 키를 누르면 키 또는 다른 작업 표시 줄이 내 응용 프로그램을 지나치게됩니다. 이것에 대한 해결책이 있습니까 :
public class Interop
{
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
public static IntPtr GetWindowHandle(Window window)
{
return new WindowInteropHelper(window).Handle;
}
}
public Shell()
{
InitializeComponent();
IntPtr window = Interop.GetWindowHandle(this);
IntPtr focused = Interop.GetForegroundWindow();
if (window != focused)
{
Interop.SetForegroundWindow(window);
}
}
좋은 방법으로 나를 안내해 주셔서 감사합니다. 하지만 사소한 문제가 하나 있습니다. 나는 문제의 일부 세부 사항을 확인해 주시겠습니까? – 1110
응용 프로그램이 시작되는 방식을 변경하는 것이 항상 실행되는 Explorer를 방지하는 것보다 낫습니다. 이렇게하려면 ** 탐색기를 로그온 셸로 응용 프로그램으로 바꿉니다. 이것은 간단한 레지스트리 설정입니다. –
죄송합니다. 하루 종일 Google을 사용하지만 유용한 설명을 찾을 수 없습니다. 시작 지점에 대한 링크 또는 코드를 제공하여 사용자가 키를 눌러 응용 프로그램을 나가는 것을 방지 할 수 있습니까? – 1110