MindFusion.Diagramming for WinForms是一個能幫助你建立工做流和進程圖表的.NET控件;數據庫實體關係圖表;組織圖表;對象層次和關係圖表;圖表和樹。它是基於對象-圖表框,表格和箭頭類型,將其歸類分派給其餘並結合成複雜的結構。該控件提供超過預先定義的50多種圖表框,如自定義設計樣式和對圖表框着色等。html
下載MindFusion.Diagramming for WinForms最新試用版慧都網node
在本教程中,咱們演示如何建立示例圖並使用LayeredLayout對其進行排列。該圖是使用Xamarin流程圖庫生成的。這是Android手機上最終應用程序的屏幕截圖:算法
咱們啓動Visual Studio,而後在項目模板的搜索框中鍵入「 Xamarin.Forms」。在搜索結果中,咱們選擇「移動應用程序(Xamarin.Forms)」,而後按「下一步」。數據庫
而後,爲應用程序選擇一個名稱,而後按「建立」。選擇您要定位的平臺:iOS,Android和UWP。咱們的示例應用程序支持全部這些。dom
建立新應用程序後,咱們將建立一個名爲References的新文件夾,並在其中複製項目所需的全部程序集引用。這些是:
心靈融合
思惟融合圖
思惟融合許可
對於主要的通用項目,由平臺的全部項目共享。
而後,在Android中,您須要添加對如下內容的引用:ide
心靈融合
MindFusion.Common.Android
思惟融合圖
MindFusion.Diagramming.Android
對於iOS項目,您須要參考:
心靈融合
MindFusion.Common.iOS
思惟融合圖
iOS版MindFusion.Diagramming
對於UWP項目,您須要添加對如下內容的引用:
心靈融合
思惟融合通用
思惟融合圖
思惟融合,做圖,通用
而後,在公共項目的xaml頁面中,您須要添加對圖形裝配的引用:
<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;
節點構造函數將節點的位置和大小及其四個值做爲參數:頂部,左側,寬度和高度。咱們不在意位置,由於咱們將使用佈局算法自動排列節點。spa
所述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直觀且易於使用,具備許多屬性,可以讓您控制圖表外觀和行爲的各個方面。您有一組豐富的預約義節點和連接可供選擇,還有表節點,複合節點,不一樣的畫筆和筆類型以及各類佈局算法。在https://mindfusion.eu/xamarin-diagram.html上了解有關Xamarin圖表的更多信息。
想要購買該產品正版受權請點擊【商城購買】,想了解更多產品信息請點擊【諮詢在線客服】