![]() |
VOOZH | about |
dotnet add package Mathema.Graph.MAUI.Visualization --version 1.1.5
NuGet\Install-Package Mathema.Graph.MAUI.Visualization -Version 1.1.5
<PackageReference Include="Mathema.Graph.MAUI.Visualization" Version="1.1.5" />
<PackageVersion Include="Mathema.Graph.MAUI.Visualization" Version="1.1.5" />Directory.Packages.props
<PackageReference Include="Mathema.Graph.MAUI.Visualization" />Project file
paket add Mathema.Graph.MAUI.Visualization --version 1.1.5
#r "nuget: Mathema.Graph.MAUI.Visualization, 1.1.5"
#:package Mathema.Graph.MAUI.Visualization@1.1.5
#addin nuget:?package=Mathema.Graph.MAUI.Visualization&version=1.1.5Install as a Cake Addin
#tool nuget:?package=Mathema.Graph.MAUI.Visualization&version=1.1.5Install as a Cake Tool
Welcome to the Mathema.Graph.MAUI.Visualization library for .NET MAUI! This library provides a powerful and flexible graph visualization control that allows you to display any graph with ease.
The control supports the visualization of any graph, offering flexibility in the representation of graph elements.
Nodes and edges within the graph can hold arbitrary objects, granting users freedom in data representation. Just convert your graph like this:
using Graph.MAUI.Visualization.Models;
var graph = new Graph();
var a = new DataNode() { DataItem = new YourObject() };
var b = new DataNode() { DataItem = new YourObject() };
graph.AddNode(a);
graph.AddNode(b);
// add more nodes
var c = new DataEdge(a, b) { DataItem = new YourObject() });
graph.AddEdge(c);
// add more edges...
Microsoft MSAGL is utilized for efficient graph layout calculations, ensuring a visually appealing presentation.
Easily insert the control into your XAML layouts, thanks to seamless integration with SkiaSharp.
Layout Settings: Choose from various layout algorithms (e.g., Sigma algorithm or MDS) through the LayoutSetting property. Interactive Elements: Define actions using ICommand for both edge and vertex interactions through OnEdgeClicked and OnVertexClicked. Much more...
Here's an example of how to use the control:
<control:VisualizationControlView
BackgroundColor="Transparent"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
LayoutSetting="SugiyamaScheme"
Graph="{Binding GraphData}"
OnEdgeClicked="{Binding EdgeClickedCommand}"
OnVertexClicked="{Binding NodeClickedCommand}"
EdgeThickness="2"
VertexHeight="45.0"
VertexWidth="80.0"
VertexShape="Ellipse">
</control:VisualizationControlView>
public partial class GraphsViewModel : BaseViewModel
{
[ObservableProperty]
Graph graphData;
public GraphsViewModel()
{
var graph = new Graph();
var a = new DataNode() { DataItem = new YourObject() };
var b = new DataNode() { DataItem = new YourObject() };
graph.AddNode(a);
graph.AddNode(b);
// add more nodes
var c = new DataEdge(a, b) { DataItem = new YourObject() });
graph.AddEdge(c);
// add more edges...
// set property
GraphData = graph;
}
[RelayCommand]
async Task NodeClicked(Node vm)
{
// Handle individual node "clicked" event
}
[RelayCommand]
async Task EdgeClicked(Edge vm)
{
// Handle individual edge "clicked" event
}
}
Feel free to explore the various properties and customize the control to suit your specific graph visualization needs. Thank you for choosing Mathema's GraphVisualizationControl library! If you have any questions or feedback, please don't hesitate to reach out.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 net7.0 is compatible. net7.0-android net7.0-android was computed. net7.0-android33.0 net7.0-android33.0 is compatible. net7.0-ios net7.0-ios was computed. net7.0-ios16.1 net7.0-ios16.1 is compatible. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-maccatalyst16.1 net7.0-maccatalyst16.1 is compatible. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net7.0-windows10.0.19041 net7.0-windows10.0.19041 is compatible. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.