Tienda Web
Área de Clientes
MindFusion

P: ¿Se ha mejorado la velocidad deserialización XML en Diagram.LoadFromXml en v5?

R: La versión 5 utiliza DOM API y la versión 4 utiliza serialización lineal, por lo que la serialización XML es un poco más lenta en V5, pero se dará cuenta de que sólo con un gran número de elementos (en miles). Además, la versión 5 serializa guardada una sóla copia de las imágenes de nodos compartidos, asá que la serialización XML para la nueva versión es mucho más rápida cuando se utilizan imágenes. Hemos hecho algunas pruebas con 400 nodos y 400 enlaces:

Cada imagen de las últimas pruebas fue asignada a 40 nodos. En este caso, la velocidad en la versión 5 es mejor debido a que los bytes de imágenes compartidas se codifican y se guardan sólo una vez, mientras que la versión 4 guarda una copia separada para cada nodo, y posteriormente se decodifican 400 copias de la imagen cuando se carga.

P: ¿Puede Diagram.LoadFromXml leer cadenas XML creadas con clase XmlWriter de la versión anterior?

R: El formato XML antiguo aún se puede utilizar para la lectura, en realidad se debe utilizar el método LoadFromString para cargar una cadena XML.

P: En v5, ¿hay una diferencia de rendimiento entre la sobrecarga LoadFromXML que tiene un documento contra el que toma una cadena?

R: El último llama al anterior después de crear un objeto XmlDocument desde el contenido de la cadena.

P: ¿Es posible convertir un diagrama en un archivo de mapa de bits?

R: Llame al método Diagram.CreateImage y luego el método Image.Save.

P: Estoy intentando crear un ícono de arrastrar&soltar personalizado para mostrar cuando se arrastra la forma por la pantalla. ¿Hay alguna forma de convertir una forma flowChart en una imagen sobre la marcha?

R: Cree un objeto gráfico utilizando Graphics.FromImage. Para dibujar una forma en la instancia de Graphics, crear un nodo temporal, establezca su forma, y luego llame al método ShapeNode.Draw. Un método similar se muestra en el proyecto de ejemplo Flowcharter donde los iconos en un cuadro de lista representan formas Flowchart.NET.

P: ¿Cómo puedo exportar un diagrama a un archivo emf?

R: Use el siguiente código:

 
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 y GdiGraphics están definidos en el nombre de espacio MindFusion.Drawing.

Copyright © 2001-2021 MindFusion LLC. All rights reserved.
Terms of use - Contactos