【问题标题】:How to create WPF window containing multiple WPF Windows/Classes?如何创建包含多个 WPF 窗口/类的 WPF 窗口?
【发布时间】:2016-12-01 17:13:28
【问题描述】:

从我从类似问题中可以看出,WPF 应该基于类,这很好。

我正在为自己编写一个资产管理工具来跟踪我的库存、许可证和联网设备。我适用于联网设备,我正在创建一个名为 ComputerAsset 的类,它由 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

【问题讨论】:

    标签: wpf xaml templates inheritance


    【解决方案1】:

    我希望您的要求是有一个主窗口并从它的子窗口中打开窗口。为此,只需将新窗口的所有者设置为主窗口,它应该可以满足您的要求。

    这是一个代码示例:

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

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

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

    这样,当应用程序关闭时,子窗口也会关闭。 如果您打算从当前的 WPF 应用程序启动新的 WPF 应用程序,请阅读this

    【讨论】:

    • 对不起,我想你误解了我想要做的事情......我想要 3 个类(每个类都有一个 WPF 窗口),但每个类都插入到一个 WPF 窗口中。这是一个视觉示例...我希望能够在多种资产类型中重用这些类。图片:photos.google.com/share/…
    • @FridgeMagnet:为什么需要 3 个窗口?这可以通过一个窗口本身来实现。只需尝试使用网格/面板在网格内创建类似窗口的视图。
    • 本质上是我想创建一个具有特定布局的类,然后创建一个与这些布局相匹配的窗口。如果这不是 WPF... 并且是单独的类,则 ComputerAsset 类将由 3 个类(asset、networkconnectiondetails(ncd) 和 ComputerDetails)、TouchscreenAsset(TSA) 类(asset、ncd、touchscreendetails)组成。当我构建 ComputerAsset 或 TouchscreenAsset 时,我希望为每个(资产、ncd)做一组标准的标签或文本框,它将我为资产或 ncd 构建到窗口中的预定义布局。跨度>
    猜你喜欢
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多