如何创建包含多个WPF Windows / Classes的WPF窗口?

时间:2016-11-30 16:13:34

标签: wpf xaml templates inheritance

从我可以从类似的问题中读到的WPF应该基于类,这很好。

我正在编写一个资产管理工具来跟踪我的股票,许可证和联网设备。我是网络设备,我正在创建一个我称之为ComputerAsset的类,它将由3个类Asset,NetworkConnectionDetails和ComputerDetails组成。

为了简单起见,我只从每个班级中挑选一些变量。 资产将包含唯一的资产ID,即设备序列号。 NetworkConnectionDetails将包含IP和MAC地址列表,如果它们是Wifi,以太网或蓝牙 ComputerDetails将包含处理器,RAM大小和硬盘驱动器以及操作系统详细信息。

我想要做的是为三者中的每一个创建一个模板,所以...... Asset()将是一个只包含标签和文本框的WPF窗口。 NetworkConnectionDetails将是一个带有DataGridView的WPF窗口 ComputerDetails将是一个类似于Asset

的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

1 个答案:

答案 0 :(得分:0)

我希望你的要求是有一个主窗口,并打开它作为孩子的窗口。要实现这一点,只需将新窗口的所有者设置为主窗口,它就可以满足您的要求。

以下是代码示例:

点击Add -> Window为项目添加新窗口。您默认情况下已经拥有MainWindow。新窗口为MainWindow2.xaml

在您想要创建新窗口的应用程序中的任何时候,只需在MainWindow中执行此操作:

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

这样,当应用程序关闭时,子窗口也会关闭。 如果您计划从当前的WPF应用程序启动新的WPF应用程序,请给this一个读取。