2011-01-08 48 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