翻譯|使用教程|編輯:楊鵬連|2021-01-12 10:43:29.310|閱讀 321 次
概述:在本教程中,我們演示如何創建示例圖并使用LayeredLayout對其進行排列。該圖是使用Xamarin流程圖庫生成的。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
MindFusion.Diagramming for WinForms是一個能幫助你創建工作流和進程圖表的.NET控件;數據庫實體關系圖表;組織圖表;對象層次和關系圖表;圖表和樹。它是基于對象-圖表框,表格和箭頭類型,將其歸類分派給其他并結合成復雜的結構。該控件提供超過預先定義的50多種圖表框,如自定義設計樣式和對圖表框著色等。MindFusion.Diagramming for WinForms現已加入在線訂購,Standard Single Developer版本原價2848現在搶購立享優惠只需2345,立即查看詳情>>
點擊下載MindFusion.Diagramming for WinForms最新試用版
在本教程中,我們演示如何創建示例圖并使用LayeredLayout對其進行排列。該圖是使用Xamarin流程圖庫生成的。這是Android手機上最終應用程序的屏幕截圖:
我們啟動Visual Studio,然后在項目模板的搜索框中鍵入“ Xamarin.Forms”。在搜索結果中,我們選擇“移動應用程序(Xamarin.Forms)”,然后按“下一步”。
然后,為應用程序選擇一個名稱,然后按“創建”。選擇您要定位的平臺:iOS,Android和UWP。我們的示例應用程序支持所有這些。
創建新應用程序后,我們將創建一個名為References的新文件夾,并在其中復制項目所需的所有程序集引用。這些是:然后,在Android中,您需要添加對以下內容的引用:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:d="http://xamarin.com/schemas/2014/forms/design" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:diag="clr-namespace:MindFusion.Diagramming;assembly=MindFusion.Diagramming" mc:Ignorable="d" x:Class="LayeredLayout.MainPage"></ContentPage>我們將映射xmlns:diag添加到MindFusion.Diagramming程序集中的MindFusion.Diagramming命名空間。然后,我們需要聲明DiagramView類的實例,然后在XAML中進行操作:
> diag:DiagramView x:Name =“ diagramView” HorizontalOptions =“ FillAndExpand” VerticalOptions =“ FillAndExpand”>二.圖初始化
在公共項目中MainPage的代碼隱藏文件中,我們聲明一個類變量Diagram。我們將其分配給與DiagramView相關的圖
圖解圖;Diagram diagram; public MainPage() { InitializeComponent(); diagram = diagramView.Diagram; ........................... ........................... ........................... }我們將在單擊按鈕時創建一個圖表,因此將按鈕控件添加到XAML代碼中:
<StackLayout Orientation="Horizontal" HorizontalOptions="Center" Spacing="5" Padding="5"> <Button Text="Random" BorderColor="Black" BackgroundColor="Silver" Clicked="OnRandomClick" />我們將處理按鈕的Click事件以生成圖形。我們通過一種稱為RandomGraph的方法進行此操作。首先,清除圖中的所有項目(如果有):
private void RandomGraph() { diagram.ClearAll(); .................... }我們使用Factory類的CreateShapeNode方法生成節點,該方法可通過圖表的屬性訪問。
ShapeNode node = diagram.Factory.CreateShapeNode(0, 0, 40, 40); node.AnchorPattern = AnchorPattern.TopInBottomOut;
節點構造函數將節點的位置和大小及其四個值作為參數:頂部,左側,寬度和高度。我們不在乎位置,因為我們將使用布局算法自動排列節點。
所述AnchorPattern屬性是重要的并且確定所述點,其中鏈接可以停靠到該節點。我們使用AnchorPattern枚舉的值之一。成員TopInBottomOut表示傳入鏈接將通過節點的頂部進入,傳出鏈接將從其底部開始。
最后,我們在節點之間創建隨機鏈接。我們再次使用Factory類,這次是CreateDiagramLink方法。我們選擇隨機節點并將其作為方法的參數提供:private void RandomGraph() { diagram.ClearAll(); for (int i = 0; i < 30; ++i) { int c = diagram.Nodes.Count; int g = 2 + random.Next(15); for (int j = 0; j < g; ++j) { ShapeNode node = diagram.Factory.CreateShapeNode(0, 0, 40, 40); node.AnchorPattern = AnchorPattern.TopInBottomOut; if (j > 0) diagram.Factory.CreateDiagramLink(diagram.Nodes[diagram.Nodes.Count - 2], node); } if (i > 0) { for (int j = 0; j < 1 + random.Next(3); ++j) diagram.Factory.CreateDiagramLink( diagram.Nodes[random.Next(c)], diagram.Nodes[c + random.Next(g)]); } } }
三.安排圖
我們選擇自動布局的LayeredLayout。像所有其他算法一樣,它是Layout名稱空間的成員,并通過一個方法應用:ranging方法是Diagram類的成員。用您要應用的布局實例調用它:
layout.Arrange(diagram);不同的算法具有不同的選項,可以微調排列的圖形。我們將“重新分配錨定”類型應用于圖,這意味著鏈接將被重新分配到算法認為最合適的位置。的NodeDistance和LayerDistance特性允許我們能夠控制節點和該曲線圖的層之間的間距。許多算法都使用它們。
我們將應用另外兩個特定于布局的屬性:EnforceLinkFlow和StraightenLongLinks。顧名思義,他們試圖使鏈接遵循一個方向并拉直那些跨層的鏈接。
至此,我們的教程結束了。
Xamarin的圖表:圖表組件為所有Xamarin應用程序提供了完整的功能集,以創建,編輯和自定義流程圖,圖表,圖形,層次結構,方案等。控件的API直觀且易于使用,具有許多屬性,可讓您控制圖表外觀和行為的各個方面。您有一組豐富的預定義節點和鏈接可供選擇,還有表節點,復合節點,不同的畫筆和筆類型以及各種布局算法。在//mindfusion.eu/xamarin-diagram.html上了解有關Xamarin圖表的更多信息。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: