Visual studio 2015 如何在DSL工具中添加用于布置图表的上下文菜单选项?
我想在VisualStudioDSL工具(可视化和建模SDK)中创建的DSL扩展中添加一个选项,通过右键单击图表时出现的上下文菜单自动排列布局。这是可能的吗?首先,右键单击图表时,声明上下文菜单中出现的新命令,然后编写此命令的处理程序代码来布局图表 关于在MSDN上声明和注册新命令,有一个非常好的指南: 布局图所需的方法位于Visual studio 2015 如何在DSL工具中添加用于布置图表的上下文菜单选项?,visual-studio-2015,dsl-tools,Visual Studio 2015,Dsl Tools,我想在VisualStudioDSL工具(可视化和建模SDK)中创建的DSL扩展中添加一个选项,通过右键单击图表时出现的上下文菜单自动排列布局。这是可能的吗?首先,右键单击图表时,声明上下文菜单中出现的新命令,然后编写此命令的处理程序代码来布局图表 关于在MSDN上声明和注册新命令,有一个非常好的指南: 布局图所需的方法位于diagram类上 下面的代码将用于布置图表(假设您在重写GetMenuCommands方法时,将名为OnArrangeDiagramClick的方法注册为事件处理程序):
diagram
类上
下面的代码将用于布置图表(假设您在重写GetMenuCommands
方法时,将名为OnArrangeDiagramClick
的方法注册为事件处理程序):
private void OnArrangeDiagramClick(object sender, EventArgs e)
{
foreach (var selectedObject in CurrentSelection)
{
if (selectedObject is YourDslDiagram)
{
var diagram = (selectedObject as YourDslDiagram);
using (var tx = diagram.Store.TransactionManager.BeginTransaction("ModelAutoLayout"))
{
diagram.AutoLayoutShapeElements(diagram.NestedChildShapes, Microsoft.VisualStudio.Modeling.Diagrams.GraphObject.VGRoutingStyle.VGRouteStraight, Microsoft.VisualStudio.Modeling.Diagrams.GraphObject.PlacementValueStyle.VGPlaceSN, false);
tx.Commit();
}
}
}
}