2016-11-30 32 views
0

私は同様の質問から読み取ることができるので、WPFはクラスに基づいている必要があります。複数のWPFウィンドウ/クラスを含むWPFウィンドウを作成するにはどうすればよいですか?

私は自分の株式、ライセンス、ネットワークデバイスを管理する資産管理ツールを書いています。私はネットワーク化されたデバイスのために、私は3つのクラスAsset、NetworkConnectionDetailsとComputerDetailsで構成されるComputerAssetを呼び出すクラスを作成しています。

わかりやすくするために、各クラスからいくつかの変数を選択します。 アセットには、デバイスのシリアル番号である一意のアセットIDが含まれます。 NetworkConnectionDetailsにはIPアドレスとMACアドレスのリストが含まれています.Wifi、Ethernet、またはBluetoothの場合は ComputerDetailsには、プロセッサ、RAMとハードドライブのサイズ、オペレーティングシステムの詳細が含まれます。

私がしたいことは、それぞれのテンプレートを作成することです。 Asset()は、ラベルとテキストボックスだけのWPFウィンドウになります。 NetworkConnectionDetailsは ComputerDetailsは私が何をしたいのか資産

に似WPFウィンドウになるのDataGridViewとWPFウィンドウのだろうComputerAssetのためのWPFウィンドウを作成し、私が作成したレイアウトで各クラスのWPFを使用していますWPFウィンドウ。明らかな理由は、私が資産のいずれかを拡張することを決めた場合、Assetクラスを使用するWPFウィンドウ全体で利用可能な情報を自動的に更新するからです。

私はトラブルこの上の情報を見つけるのを抱えている(あるいは間違った検索用語を使用することができます!)

他のWPFウィンドウを含むようにWPFウィンドウを使用することが可能ですか?

ここに、私がしようとしているものの視覚的な例へのリンクがあります。私が作成したWPFウィンドウを設定して、別のWPFウィンドウに挿入し、新しいウィンドウを開くことはできません。基本的に、他のWPFウィンドウ/クラスで構成された単一のWPFウィンドウを構築します。

画像:https://photos.google.com/share/AF1QipM1iVC79w-ZSIqYeOBioU9DyFdeFUYKS43riqi80N8kqxJ5wajekWg72GQxdFQuRQ/photo/AF1QipOtva3EliD8BIzbNb_aPGE5ks1GjoitqZNJlLMC?key=c3ZvdXVFU1lyTDJjTmNWMzA5dldUNTNERHVRYUtn

答えて

0

私はあなたの要件がその子としてそれから、メインウィンドウと開いているウィンドウを持つことであると思います。これを実現するには、新しいウィンドウの所有者をメインウィンドウに設定するだけで、要件に応じてうまく動作するはずです。ここで

は、コードサンプルです:

Add -> Windowをクリックすることで、プロジェクトに新しいウィンドウを追加します。既定では既にMainWindowになっています。新しいウィンドウはMainWindow2.xamlです。あなたは、新しいウィンドウを作成するアプリケーション内の任意の時点で

、ちょうどあなたのMainWindowでこれを行う:アプリケーションが閉じているとき

MainWindow2 mainWin2 = new MainWindow2(); 
mainWin2.Owner = this; 
mainWin2.Show(); 

この方法では、サブウインドウも閉じられています。 現在のWPFアプリケーションから新しいWPFアプリケーションを開始する場合は、thisを読んでください。

+0

申し訳ありません私がやりたいことを誤解してしまったと思います...私は3つのクラス(それぞれWPFウィンドウを持つ)を持っていましたが、それぞれを1つのWPFウィンドウに挿入しました。ここでは視覚的な例があります...複数の資産タイプでクラスを再利用できるようにしたいと考えています。画像:https://photos.google。COM /共有/ AF1QipM1iVC79w-ZSIqYeOBioU9DyFdeFUYKS43riqi80N8kqxJ5wajekWg72GQxdFQuRQ /写真/ AF1QipOtva3EliD8BIzbNb_aPGE5ks1GjoitqZNJlLMCキー= c3ZvdXVFU1lyTDJjTmNWMzA5dldUNTNERHVRYUtn – FridgeMagnet

+0

@FridgeMagnet:なぜあなたは3の窓が必要なのでしょうか?これは1つのウィンドウ自体で実現できます。グリッド/パネルを使用して、グリッド内のビューのようなウィンドウを作成しようとします。 – ViVi

+0

基本的には、特定のレイアウトのクラスを作成してから、そのレイアウトを無効にするウィンドウを作成したいと思っています。これがWPF ...ではなく、クラスだけだった場合、ComputerAssetクラスは3つのクラス(asset、networkconnectiondetails(ncd)およびComputerDetails)、TouchscreenAsset(TSA)クラス(asset、ncd、touchscreendetails)で構成されます。私がComputerAssetやTouchscreenAssetをビルドするときに、それぞれの資産(ncd)のために何を探しているのかは、ラベルやテキストボックスの標準セットを持っています。 – FridgeMagnet

関連する問題