我在我的C#應用程序中使用Microsoft Visio作爲COM對象。我想在Visio頁面上自動排列形狀。我應該爲這項任務編碼?形狀是數據庫實體。通過C自動排列Visio形狀
userView.Shapes.SomeMethod();
userView是COM對象的名稱,但是SomeMethod
應該是什麼?
我在我的C#應用程序中使用Microsoft Visio作爲COM對象。我想在Visio頁面上自動排列形狀。我應該爲這項任務編碼?形狀是數據庫實體。通過C自動排列Visio形狀
userView.Shapes.SomeMethod();
userView是COM對象的名稱,但是SomeMethod
應該是什麼?
This可能有助於
相關報價
奠定了一個網頁,船長或組的形狀的子集, 建立在其中鋪設的形狀出來的一個選擇對象選中 ,然後調用Layout方法。如果在選擇對象上執行佈局方法 ,並且該對象沒有選擇任何形狀,則頁面,主體或選擇組中的所有形狀均排列在 之外。
編輯:noonand有關LayoutIncremental方法
剛把再看看對象模型,它似乎你想要的方法是LayoutIncremental方法
摘自2012年9月21日新增信息從relevant help topic說:
Page.LayoutIncremental(AlignOrSpace, AlignHorizontal, AlignVertical, SpaceHorizontal, SpaceVertical, UnitsNameOrCode)
我需要做類似前一陣子東西..
我用佈局的微軟Glee庫。下載中包含非常好的示例,向您展示如何添加節點和關係並使其「自動排列」。但請注意,Glee不適用於商業用途。
然後我用於轉換從吉利所計算的位置來Visio繪圖這個例子。
基本上我要做的就是添加我的所有節點和關係太歡樂合唱團,然後讓節點和它們的位置的列表,並使用第二個鏈接將他們添加到Visio。
這裏是一個什麼吉利可以做一個圖形例如:
我知道這是一個「較老」的問題,但 我的工作非常類似的東西,並已成功地「自動佈局'流程圖:
public enum GraphStyles { TopDown, LeftRight };
public void ArrangeGraph(GraphStyles Style)
{
if (Style == GraphStyles.TopDown)
{
// set 'PlaceStyle'
var placeStyleCell = VisApp.ActivePage.PageSheet.get_CellsSRC(
(short)VisSectionIndices.visSectionObject,
(short)VisRowIndices.visRowPageLayout,
(short)VisCellIndices.visPLOPlaceStyle).ResultIU = 1;
// set 'RouteStyle'
var routeStyleCell = VisApp.ActivePage.PageSheet.get_CellsSRC(
(short)VisSectionIndices.visSectionObject,
(short)VisRowIndices.visRowPageLayout,
(short)VisCellIndices.visPLORouteStyle).ResultIU = 5;
// set 'PageShapeSplit'
var pageShapeSplitCell = VisApp.ActivePage.PageSheet.get_CellsSRC(
(short)VisSectionIndices.visSectionObject,
(short)VisRowIndices.visRowPageLayout,
(short)VisCellIndices.visPLOSplit).ResultIU = 1;
}
else if (Style == GraphStyles.LeftRight)
{
// set 'PlaceStyle'
var placeStyleCell = VisApp.ActivePage.PageSheet.get_CellsSRC(
(short)VisSectionIndices.visSectionObject,
(short)VisRowIndices.visRowPageLayout,
(short)VisCellIndices.visPLOPlaceStyle).ResultIU = 2;
// set 'RouteStyle'
var routeStyleCell = VisApp.ActivePage.PageSheet.get_CellsSRC(
(short)VisSectionIndices.visSectionObject,
(short)VisRowIndices.visRowPageLayout,
(short)VisCellIndices.visPLORouteStyle).ResultIU = 6;
// set 'PageShapeSplit'
var pageShapeSplitCell = VisApp.ActivePage.PageSheet.get_CellsSRC(
(short)VisSectionIndices.visSectionObject,
(short)VisRowIndices.visRowPageLayout,
(short)VisCellIndices.visPLOSplit).ResultIU = 1;
}
else { throw new NotImplementedException("GraphStyle " + Style.ToString() + " is not supported"); }
VisApp.ActivePage.Layout();
}
希望這可以節省一些人一些時間。 我花了一段時間才弄明白。
我使用的是Visio 2010和visual studio 2010
這不起作用 –