2016-11-30 43 views
0

從我可以從類似的問題中讀到的WPF應該基於類,這很好。如何創建包含多個WPF Windows /類的WPF窗口?

我正在寫自己的資產管理工具,以跟蹤我的股票,許可證和聯網設備。我是聯網設備,我創建了一個類,我將調用ComputerAsset,它將由3類Asset,NetworkConnectionDetails和ComputerDetails組成。

爲了簡單起見,我只會從每個類中挑選一些變量。 資產將包含唯一的資產ID,設備序列號。 NetworkConnectionDetails將包含一個IP和MAC地址列表,如果它們是Wifi,以太網或藍牙 ComputerDetails將包含處理器,RAM的大小以及硬盤驅動器和操作系統的詳細信息。

我想要做的是爲三者中的每一個創建一個模板,所以... Asset()將是一個只帶有標籤和文本框的WPF窗口。 NetworkConnectionDetails將是一個WPF窗口有一個DataGridView ComputerDetails將類似於資產

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窗口),但是將每個類插入到一個WPF窗口中。這是一個可視化的例子...我希望能夠在多種類型的資產中重用這些類。圖片:https://photos.google。COM /股/ AF1QipM1iVC79w-ZSIqYeOBioU9DyFdeFUYKS43riqi80N8kqxJ5wajekWg72GQxdFQuRQ /照片/ AF1QipOtva3EliD8BIzbNb_aPGE5ks1GjoitqZNJlLMC鍵= c3ZvdXVFU1lyTDJjTmNWMzA5dldUNTNERHVRYUtn – FridgeMagnet

+0

@FridgeMagnet:爲什麼你需要3個窗口?這可以通過一個窗口本身來實現。只需嘗試使用網格/面板在網格內創建類似視圖的窗口即可。 – ViVi

+0

它本質上是我想要創建一個具有特定佈局的類,然後創建一個窗口來加強這些佈局。如果這不是WPF ...並且僅僅是類,ComputerAsset類將由3個類(資產,網絡連接細節(ncd)和ComputerDetails),TouchscreenAsset(TSA)類(asset,ncd,touchscreendetails)組成。我想爲每個(資產,ncd)做的事情是在我構建ComputerAsset或TouchscreenAsset時都有一組標準或文本框,它爲資產或ncd生成了預定義的佈局。 – FridgeMagnet