簡體   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