Shop
Anmelden
MindFusion

F: Wurde die Geschwindigkeit der XML-Deserialisierung bei der Diagram.LoadFromXml in v5 verbessert?

A: Die Version 5 benutzt die DOM API und Version 4 hat lineare Serialisierung angewendet, so dass die XML-Serialisierung etwas langsamer in V5 ist, aber Sie werden es nur für eine große Anzahl von Items (Tausende) bemerken. Außerdem speichert die Version 5 eine einzelne Kopie von freigegebenen Knotenbildern, also die XML-Serialisierung ist in der neuen Version viel schneller mit der Anwendung von Bildern. Wir haben einige Tests mit 400 Knoten und 400 Links gemacht:

Jedes Bild von den letzten Tests wurde 40 Knoten zugewiesen. In diesem Fall ist die Geschwindigkeit in Version 5 viel schneller, weil die Bytes von freigegebenen Bildern nur einmal kodiert und gespeichert werden; während bei der Version 4 eine einzelne Kopie für jeden Knoten gespeichert wird, und anschließend 400 Bildkopien beim Laden dekodiert werden.

F: Kann Diagram.LoadFromXml XML Strings lesen, die mit der XmlWriter Klasse von vorherigen Versionen erstellt wurden?

A: Das alte XML-Format wird noch für Lesen unterstützt; zurzeit müssen Sie die Methode LoadFromString zum Laden eines XML-Strings benutzen.

F: Gibt es in v5 ein Darstellungsunterschied zwischen der überladenen LoadFromXml, die das Diagramm von einem XMLDocument ladet und derjenigen, die ein String nimmt?

A: Die Letzte ruft die Vorige nach dem Erstellen eines XmlDocument-Objekts von dem Stringinhalt auf.

F: Ist es möglich, ein Diagram als Bitmap-Datei zu konvertieren?

A: Rufen Sie die Methode Diagram.CreateImage und dann Image.Save auf.

F: Ich versuche, ein individuelles Icon zum Drag&Drop zu erstellen, das beim Ziehen der Shape auf dem Bildschirm angezeigt wird. Ist es möglich, eine flowChart-Shape in ein Bild bei dem Fliegen umzuwandeln?

A: Erstellen Sie ein Graphikobjekt mit Graphics.FromImage. Zum Zeichnen einer Shape auf der Graphics-Instanz erstellen Sie einen temporären Knoten, wählen Sie seine Form, und dann rufen Sie die Methode ShapeNode.Draw auf. Eine ähnliche Methode ist im Beispielprojekt 'Flowcharter' enthalten, in dem die Icons in einer Listbox Flowchart.NET Shapes darstellen.

F: Wie kann ich ein Diagramm als Emf-Datei exportieren?

A: Benutzen Sie den folgenden Code:

 
using (FileStream stream = new FileStream(
 @"C:\temp.wmf", FileMode.Create))
{
 Graphics g = CreateGraphics();
 IntPtr hDC = g.GetHdc();
 Metafile metafile = new Metafile(stream, hDC);
 g.ReleaseHdc(hDC);
 g.Dispose(); IGraphics gMeta = new GdiGraphics(
	 Graphics.FromImage(metafile));
	 
 diagram.Draw(gMeta, new RenderOptions(), 
	 diagram.Bounds, false);
	 
 gMeta.Dispose();
	 
 metafile.Dispose();
}
IGraphics und GdiGraphics werden in dem MindFusion.Drawing Namespace definiert.

Copyright © 2001-2024 MindFusion LLC. Alle Rechte vorbehalten.
Nutzungsbedingungen - Kontakt