2011-01-08 19 views
0

私の最初のWPFプロジェクトでは時間がかかります:)。以前はFlexとPureMVCで作業していましたが、RIAではプロジェクトの設定がどのように重要であるかを知っています。 MVVMで作業することに決めました。 PRISMフレームワークで作業することにしました。アプリケーションはオペレーティングシステムのようなものです。 'シェル'(小さなアプリケーション用の親)があります。より小さなアプリケーション私はモジュールのように作るつもりです。だから私はこのようなプロジェクトの構造を設計するつもりです。私の最初のMVVMアプリケーションアーキテクチャの設定

Module_A {ビュー、ビューモデル、モデル、 資産} //例計算 Module_B {ビュー、ビューモデル、モデル、 資産} //ノート

など 用Iプリズムドキュメントを読み、私はこのすべてのモジュールのためのparrentはシェルプロジェクトでなければならないことを知っています、そして、これは私のここでの主な質問です。

Parrent_Project {App.xaml、 Bootstrapper.cs、Shell.xaml}

このシェルは、(オペレーティング・システムのような)背景画像とフルスクリーンされるため、右いくつかの機能をクリックしてください。それはここShell.xamlのmodulesXZのようなフォルダ構造を作成してもいいですか?私は良い構造でプロジェクトを始めたいので、どんなアドバイスも大歓迎です。ありがとう

多分私は明確ではありませんでした。シェルを使用して、フルスクリーン、常にトップなどに設定するようないくつかの機能を(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); 
      } 

     } 

答えて

1

あなたが望む効果を達成するための最も簡単な方法は、シェルを構成することである。このための任意の解決策はあります。

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

をし、これらのプロパティを変更する必要がない場合、それは純粋に表示上の問題であるとして、このアプローチはすでに優しいMVVMされています。具体的には、Shell.xamlに次の値を設定すると、名目上は望ましい結果を提供します。

+0

よろしくお願いします。しかし、私には小さな問題が1つあります。私は問題の詳細をいくつか調べてください。 – 1110

+0

常に実行中のエクスプローラが表示されないようにするよりも、アプリケーションの起動方法を変更する方がよいでしょう。これを行うには**エクスプローラをログオンシェルとしてアプリケーションに置き換えます。これは簡単なレジストリ設定です。 –

+0

申し訳ありませんが、私は一日中グーグルではありますが、何の説明も見つけられません。ユーザーがキーを押してアプリケーションを終了するのを防ぐ方法を、スタートポイントのリンクまたはコードを提供できますか? – 1110

関連する問題