C# 从Visio VSSX文档导入形状
我有一个带有一些形状的Visio stencil文档,我想将其中包含的形状添加到我的文档中。基于我能够做到这一点,唯一的问题是如何摆脱dock面板,该面板在使用Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked标志打开模具时出现 因此,导入后,我关闭打开的模具文档,但停靠面板保持不变。也许我也可以以编程方式关闭它,但是我应该考虑复杂的逻辑,跟踪WHATER,如果用户以前打开这个面板等,则打开或不保持UI不变。 我的问题是,是否有其他选项可以从模具导入形状,或者此面板和模具文档打开选项的解决方法(例如,打开隐藏的模具文档,然后以静默方式关闭它)C# 从Visio VSSX文档导入形状,c#,vsto,office-addins,visio,C#,Vsto,Office Addins,Visio,我有一个带有一些形状的Visio stencil文档,我想将其中包含的形状添加到我的文档中。基于我能够做到这一点,唯一的问题是如何摆脱dock面板,该面板在使用Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked标志打开模具时出现 因此,导入后,我关闭打开的模具文档,但停靠面板保持不变。也许我也可以以编程方式关闭它,但是我应该考虑复杂的逻辑,跟踪WHATER,如果用户以前打开这个面板等,则打开或不保持UI不变。 我的问题是,是否
//Microsoft.Office.Interop.Visio.Application
var文件=应用程序文件;
var文件=文件。添加(“”);
var page=Application.ActivePage;
var visionstencil=documents.OpenEx(
@“c:\Users\user\Desktop\stencil.vssx”,
(简称)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visOpenDocked);
var masters=visionstencil.masters;
对于(var i=1;i您可以在“隐藏”状态下打开模具文档,还可以使用Masters.Drop
方法直接添加到目标Masters集合,如下所示:
var targetDoc = vApp.Documents.Add("");
var sourceDoc = vApp.Documents.OpenEx(
@"c:\Users\user\Desktop\stencil.vssx",
(short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visAddHidden);
var sourceMasters = sourceDoc.Masters;
for (var i = 1; i <= sourceMasters.Count; ++i)
{
var sourceMaster = sourceMasters[i];
if (sourceMaster.Name == "Master.2")
{
targetDoc.Masters.Drop(sourceMaster, 10, 10);
break;
}
}
sourceDoc.Close();
var targetDoc=vApp.Documents.Add(“”);
var sourceDoc=vApp.Documents.OpenEx(
@“c:\Users\user\Desktop\stencil.vssx”,
(短)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visAddHidden);
var sourceMasters=sourceDoc.Masters;
对于(var i=1;i您可以在“隐藏”状态下打开模具文档,还可以使用Masters.Drop
方法直接添加到目标Masters集合,如下所示:
var targetDoc = vApp.Documents.Add("");
var sourceDoc = vApp.Documents.OpenEx(
@"c:\Users\user\Desktop\stencil.vssx",
(short)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visAddHidden);
var sourceMasters = sourceDoc.Masters;
for (var i = 1; i <= sourceMasters.Count; ++i)
{
var sourceMaster = sourceMasters[i];
if (sourceMaster.Name == "Master.2")
{
targetDoc.Masters.Drop(sourceMaster, 10, 10);
break;
}
}
sourceDoc.Close();
var targetDoc=vApp.Documents.Add(“”);
var sourceDoc=vApp.Documents.OpenEx(
@“c:\Users\user\Desktop\stencil.vssx”,
(短)Microsoft.Office.Interop.Visio.VisOpenSaveArgs.visAddHidden);
var sourceMasters=sourceDoc.Masters;
对于(var i=1;i无需循环遍历模具中的所有形状。您可以按名称访问形状:
targetDoc.Masters.Drop(sourceMasters["Master.2"], 10, 10);
无需循环浏览模具中的所有形状。您可以按名称访问形状:
targetDoc.Masters.Drop(sourceMasters["Master.2"], 10, 10);