C# 像块一样实现可拖动的ui

C# 像块一样实现可拖动的ui,c#,wpf,C#,Wpf,我目前正在开发一个应用程序,允许用户编写一些脚本。我已经开发了一个“编译器”来分析用户编写的脚本,但现在我想创建一个可视化编辑器,该编辑器具有用户拥有的所有可能性,类似于以下内容: 我目前正在使用C#,我不知道如何开发类似上面的东西。我想在我的DSL上做我自己的可拖动UI,但不知道如何开始 谢谢你可以用WPF来做。 使用拖放,您可以更接近。 观察将帮助你了解这种机制的工作原理。 试着慢慢地改进它,并利用它。 第二步是玩列表和拖放 . 通过使用从鼠标位置获取的数据,可以进一步改进, 这是一个很好的

我目前正在开发一个应用程序,允许用户编写一些脚本。我已经开发了一个“编译器”来分析用户编写的脚本,但现在我想创建一个可视化编辑器,该编辑器具有用户拥有的所有可能性,类似于以下内容:

我目前正在使用C#,我不知道如何开发类似上面的东西。我想在我的DSL上做我自己的可拖动UI,但不知道如何开始

谢谢

你可以用WPF来做。 使用拖放,您可以更接近。 观察将帮助你了解这种机制的工作原理。 试着慢慢地改进它,并利用它。 第二步是玩列表和拖放 . 通过使用从鼠标位置获取的数据,可以进一步改进,
这是一个很好的方法。

Blockly是开源的,所以您可以在编辑器中随意使用它。要使用Blockly库,您不需要了解太多JavaScript,还有一个问题。

对于其他试图做类似事情的Wpf开发人员,我不建议您自己做这件事,而是在Wpf中实际使用一个网页,然后通过它与Blockly通信。我向你保证,这将比亲自尝试要容易得多

如果您不想重新创建所有脚本生成代码,您还可以为Blockly创建一个自定义xml生成器,然后打印出连接的块,如:

<block>
   <whileblock repeat="20"/>
<block/>

然后根据连接的块,破译此代码并从c#生成脚本