public void BeginRender(WpfDrawingDocument drawingDocument)
        {
            if (_svgRenderer == null)
            {
                _svgRenderer = new WpfRenderingHelper(this);
            }

            _drawingDocument = drawingDocument;
        }
Пример #2
0
        public Transform GetTransform(WpfDrawingDocument document, Drawing hitDrawing)
        {
            var displayTransform = (Transform)document.DisplayTransform.Inverse;

            if (_parent == null)
            {
                return(displayTransform);
            }
            var splitPaths = this.SplitPath;

            if (splitPaths == null || splitPaths.Length == 0)
            {
                return(displayTransform);
            }
            foreach (var splitPath in splitPaths)
            {
                System.Diagnostics.Trace.WriteLine(splitPath);
            }

            var uniqueId = SvgObject.GetUniqueId(hitDrawing);

            TransformGroup transforms = new TransformGroup();

            transforms.Children.Add(displayTransform);

            var drawingLayer = document.GetDrawingLayer();

            if (drawingLayer != null && drawingLayer.Transform != null)
            {
                var transform = drawingLayer.Transform;
                if (!transform.Value.IsIdentity)
                {
                    transforms.Children.Add(transform);
                }
            }

            for (int i = 0; i < splitPaths.Length; i++)
            {
                var splitPath = splitPaths[i];
                if (!string.IsNullOrWhiteSpace(uniqueId) &&
                    string.Equals(splitPath, uniqueId, StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }
                var drawing = document.GetByUniqueId(splitPath) as DrawingGroup;
                if (drawing != null && drawing.Transform != null)
                {
                    if (drawing.Transform != drawingLayer.Transform)
                    {
                        transforms.Children.Add(drawing.Transform);
                    }
                }
            }

            return(transforms);
        }
 public void EndRender()
 {
     _svgRenderer     = null;
     _drawingDocument = null;
 }
Пример #4
0
 public void BeginDrawing(WpfDrawingDocument drawingDocument)
 {
     _drawingDocument = drawingDocument;
 }