C# 如何创建WPF窗口编辑器

C# 如何创建WPF窗口编辑器,c#,wpf,xaml,graphics,graph,C#,Wpf,Xaml,Graphics,Graph,我甚至不知道从哪里开始寻找这方面的信息,所以我希望这里的人能提供一些指导 我想创建一个WPF窗口设计器。其想法是拥有一个自定义控件库,用于定义逻辑,以及一个可以放置在WPF窗口上的控件,该窗口将直观地显示逻辑的状态 该窗口可以在VisualStudio中编辑,但诀窍是合并运行时编辑功能。WPF应用程序将运行,并且可以激活设计器模式以显示包含所有可用控件的工具箱。可以将控件拖动到活动选择的窗口,并通过弹出窗口进行配置。有些控件只是图形化的,比如线条,但大多数都有底层逻辑来显示信息 这类似于HMI,

我甚至不知道从哪里开始寻找这方面的信息,所以我希望这里的人能提供一些指导

我想创建一个WPF窗口设计器。其想法是拥有一个自定义控件库,用于定义逻辑,以及一个可以放置在WPF窗口上的控件,该窗口将直观地显示逻辑的状态

该窗口可以在VisualStudio中编辑,但诀窍是合并运行时编辑功能。WPF应用程序将运行,并且可以激活设计器模式以显示包含所有可用控件的工具箱。可以将控件拖动到活动选择的窗口,并通过弹出窗口进行配置。有些控件只是图形化的,比如线条,但大多数都有底层逻辑来显示信息

这类似于HMI,虽然我已经找到了允许使用visual studio进行HMI设计的库,但我找不到任何关于如何构建上述基本运行时编辑器的信息

我计划在应用程序中使用MEF,所以我想我知道如何创建库并使用MEF加载它们。我需要在每个库中包含一个用户控件和任何底层逻辑

我想我需要为每个控件包含一个工具箱映像,这就是需要加载到工具箱中的内容。将使用拖放,当以某种方式开始拖放时,我需要创建用户控件,以便用户将其拖放到窗口表面上

现在它将变成一个WPF窗口编辑器,我不知道如何获得该功能。也就是说,可以在控件已放下后移动控件。将窗口序列化为XAML文件,可在下次运行时再次加载该文件


做这类事情有什么指导吗?我一直在阅读graph editor示例和HMI示例,但没有真正说明如何使用用户/自定义控件。

为什么需要这个?我可以想象,你有一个大的表单,你想让用户选择,在哪里,什么时候,以及查看哪些信息。这可以通过使用MDI进行停靠,通过创建具有一些附加属性的有限可用窗口列表来实现。但是让用户在表单的任何位置多次放置列表中的任何控件?它太灵活,需要太多的配置。用户可以从列表中选择主题预定义设置,但无论如何,他们不喜欢处理很多选项。所以为什么?我需要这个功能,因为相同的部分将用于许多不同的项目。它们之间唯一的区别是每件作品的布局和地址。部署项目后,需要能够在运行时使用软件添加、移动或删除片段,而无需使用visual studio或重新构建。终端功能与大多数HMI软件包非常相似。我想除了运行时设计和保存./serialize部分之外,我对如何尝试处理所有问题都有一些想法。也许您可以创建模块并使其可配置,同时有一个显示它的解决方案。它更加简单和现实。如果某个对象出现不止一次—将其设置为控件,您可以动态创建该控件,向其添加属性,为许多这样的属性设置一系列配置,使用一个框架将其呈现给示例,简单网格可以容纳多个控件->完成。