像blockly一样实现draggable ui

时间:2013-10-06 14:59:10

标签: c# wpf xna

我目前正在开发一个允许用户编写某些脚本的应用程序。我开发了一个“编译器”来分析用户制作的脚本,但现在我想创建一个具有用户所有可能性的可视化编辑器,类似于:Blockly - A visual programming editor

我目前正在使用C#和WPF,我不知道如何开发类似上面的东西。我考虑过在XNA中编写脚本编辑器,因为XNA更适合图形,但我真的不知道如何。

感谢

3 个答案:

答案 0 :(得分:0)

Blockly是开源的,所以请随意将其用于编辑器。你真的不需要知道很多JavaScript才能使用Blockly库,并且有一个support group

答案 1 :(得分:0)

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

Use Blockly inside a WebBrowser

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

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

然后解密并根据连接的块从c#生成脚本。

答案 2 :(得分:-1)

你可以用WPF做到这一点。 使用拖放功能可以让您更加亲近。 看this video会帮助你理解这个机制是有效的。 尝试慢慢改进并玩它。 第二步是播放列表并拖放 Like shown here。 使用从鼠标位置获得的数据,进一步提高它, 这是一个很好的方法demonstrated here