在Xamarin.Forms中創建排列圖教程

MindFusion.Diagramming for WinForms是一個能幫助你創建工作流和進程圖表的.NET控件;數據庫實體關係圖表;組織圖表;對象層次和關係圖表;圖表和樹。它是基於對象-圖表框,表格和箭頭類型,將其歸類分派給其他並結合成複雜的結構。該控件提供超過預先定義的50多種圖表框,如自定義設計樣式和對圖表框着色等。

下載MindFusion.Diagramming for WinForms最新試用版慧都網

在本教程中,我們演示如何創建示例圖並使用LayeredLayout對其進行排列。該圖是使用Xamarin流程圖庫生成的。這是Android手機上最終應用程序的屏幕截圖:
在Xamarin.Forms中創建排列圖教程

I.項目設置

我們啓動Visual Studio,然後在項目模板的搜索框中鍵入“ Xamarin.Forms”。在搜索結果中,我們選擇“移動應用程序(Xamarin.Forms)”,然後按“下一步”。

在Xamarin.Forms中創建排列圖教程

然後,爲應用程序選擇一個名稱,然後按“創建”。選擇您要定位的平臺:iOS,Android和UWP。我們的示例應用程序支持所有這些。

創建新應用程序後,我們將創建一個名爲References的新文件夾,並在其中複製項目所需的所有程序集引用。這些是:
心靈融合
思維融合圖
思維融合許可
對於主要的通用項目,由平臺的所有項目共享。
然後,在Android中,您需要添加對以下內容的引用:




心靈融合
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;
節點構造函數將節點的位置和大小及其四個值作爲參數:頂部,左側,寬度和高度。我們不在乎位置,因爲我們將使用佈局算法自動排列節點。





























所述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圖表的更多信息。

想要購買該產品正版授權請點擊【商城購買】,想了解更多產品信息請點擊【諮詢在線客服】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章