C# 找到形状';C语言中MS Visio的s形式#
我必须查看visio的每个形状,并确定它是否代表一个圆 我找不到一个属性可以让我知道圆的形状、半径或任何与圆接触的元素 下面是一个小代码:C# 找到形状';C语言中MS Visio的s形式#,c#,visio,C#,Visio,我必须查看visio的每个形状,并确定它是否代表一个圆 我找不到一个属性可以让我知道圆的形状、半径或任何与圆接触的元素 下面是一个小代码: for (var k = 1; k < shapesCount; k++) { var shape = Document.Pages[1].Shapes[k]; ....... if( 'element is a circle') Console.WriteLine(shape.Name + " est
for (var k = 1; k < shapesCount; k++)
{
var shape = Document.Pages[1].Shapes[k];
.......
if( 'element is a circle')
Console.WriteLine(shape.Name + " est un cercle");
}
for(var k=1;k
对不起我的英语,我是法国学生
谢谢,请参见:
及
这两篇文章都没有任何直接的“形状测试”逻辑,我建议(有根据的猜测),这是因为在Visio中没有“圆”或“矩形”的概念
Visio有这些“模具”,允许您创建形状
因此,圆形模具将是看起来像圆形的点的集合,当使用模具时,它将创建一个相同的新形状对象
使用模具似乎被称为母版形状,因此您可以这样做:
Visio.Document visioStencil = visioDocs.OpenEx("Basic Shapes.vss",
(short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked);
Visio.Master visioCircleMaster = visioStencil.Masters.get_ItemU(@"Circle");
// Shape code here
var shape = Document.Pages[1].Shapes[0];
var isCircle = shape.Master == visioCircleMaster;
我不确定这是否有效,即使有效,也只适用于使用该模具创建的形状
如果您的问题更一般:
如何在visio中获取形状的路径数据,并以启发式方式确定它是否表示圆
那恐怕我帮不了你,这可能根本不可能