2011-01-08 66 views
0

好吧,我的第一個WPF項目的時間到了:)。我之前使用Flex和PureMVC工作,我知道項目設置在RIA中的重要性。我決定與MVVM合作。並決定與PRISM框架合作。應用程序就像操作系統一樣。將有'殼'(小型應用程序的父項)。較小的應用程序,我打算做模塊。所以我打算設計這樣的項目結構。我的第一個MVVM應用程序體系結構設置

Module_A {視圖,視圖模型,模型, 資產} //例如計算器 Module_B {視圖,視圖模型,模型, 資產} //筆記本

等 我讀棱鏡doc和我發現所有這些模塊的parrent應該是shell項目,這是我的主要問題。

Parrent_Project {App.xaml中, Bootstrapper.cs,Shell.xaml}

由於這種外殼將與背景圖像(如操作系統)被全屏,右擊的一些功能。可以在這裏爲modules.xaml創建文件夾結構嗎?我想以良好的結構開始項目,所以任何建議都是值得歡迎的。謝謝

也許我不清楚。我可以使用外殼添加它的一些功能(以MVVM的方式),如設置爲全屏,總是在頂端等?或不?

我希望殼體處於完全自助式模式。我用以下代碼做了一些關於它的事情。但是,當我按alt +標籤,贏鑰匙或其他任務欄去我的應用程序。有沒有解決方案:

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); 
      } 

     } 

回答

1

實現所需效果的最簡單方法是通過配置shell。具體而言,在Shell.xaml設置以下值名義上將提供所需的結果:

<Window ... WindowStyle="None" WindowState="Maximized" Topmost="True> 

如果這些特性並不需要改變那麼這種做法已經MVVM友好的,因爲它是一個純粹的看法問題。

+0

好的,謝謝你讓我走向好路。但我有一個小問題。我有問題的一些細節,請你檢查一下。 – 1110 2011-01-09 17:05:20