繁体   English   中英

是否可以为视觉工作室创建一个设计器,例如为不同类型的类创建 WinForms 设计器?

[英]Is it possible to create a designer for visual studio like the WinForms designer for a different kind of classes?

我正在尝试创建一个系统,该系统根据数据流网络处理任务。 该网络应该由我系统的用户创建为类似于插件的东西。 它被创建为包含网络作为类型(类)的 C# 程序集,我想为用户提供一个可视化编辑器来创建和编辑网络。 (编辑将包括添加/删除任务,移动它们,在它们之间创建连接,......)

理想情况下,这将像 WinForms 设计器一样提供集成到 Visual Studio 中的可视化和交互式编辑功能(如果可能,还可以同时查看自动生成的源代码)。

有没有办法创建这样的编辑器并将其注册到 VS 以用于从我的基本类型派生的类型? 任何关于可行性、需要实现哪个接口(?)、需要在哪里注册东西以及需要如何将其分发给我的用户的提示将不胜感激。

澄清:我不是在寻找创建数据 model 的工具(视觉上)。 准确地说,它更像是这样的:

// for declaring the content of a task group
public class TaskAttribute: Attribute
{
    public TaskAttribute(Type type, string name) {...}
}

// for declaring the flow of data
public class ConnectionAttribute : Attribute
{
    public ConnectionAttribute(string source, string output, string destination, string input) {...}
}

// basic task class
public abstract class Task
{
    ...
}

// basic task group class
public abstract class TaskGroup : Task
{
    ...
}

// one actual task with a payload of executable code
public class Foo : Task
{
    ...
}

// a second task with payload code
public class Bar : Task
{
    ...
}

/* this construct is, what I want to visually create and edit
through some extension of visual studio:
the group of subtasks (or more like a tree) 
and all data flowing between these tasks
*/
[Task(typeof(Foo), "foo")]
[Task(typeof(Bar), "bar")]
[Connection("foo", "output2", "bar", "input1")]
public class FooBar : TaskGroup
{
}

现在我正在寻找一种方法来创建一个可视化编辑器,它可以让我创建和编辑像 $FooBar$ class 这样的东西,并告诉 Visual Studio 使用所述编辑器/设计器,所以我的用户不需要编写或阅读和解释源代码中的文字描述,但可以使用一些可视化和鼠标交互来代替。

评论中提到的使用数据建模 SDK 的解决方案似乎为此目的过多,从参考介绍的第一眼来看,我不太确定,为我的用户数据创建实际编辑器有多少自由. 有没有办法在没有正式开销的情况下连接一个专门的编辑器?

请参阅 VS 可扩展性文档中的在自定义编辑器中创建自定义编辑器和设计器以及文档数据和文档视图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM