Ejemplo n.º 1
0
        SerializeDisguisedVisual(
            object serializedObject
            )
        {
            Visual v = serializedObject as Visual;

            if (v == null)
            {
                throw new ArgumentException(SR.Get(SRID.MustBeOfType, "serializedObject", typeof(Visual)));
            }

            //  The new class XpsOMSerializationManager now also interacts with this class
            // the cast below is shorthand for cast to either XpsSerializationManager or XpsOMSerializationManager
            // we want this to throw an InvalidCastException if it fails to mantain compatibility.
            if ((IXpsSerializationManager)SerializationManager != null)
            {
                XmlWriter pageWriter = SerializationManager.
                                       PackagingPolicy.AcquireXmlWriterForPage();

                XmlWriter resWriter = SerializationManager.
                                      PackagingPolicy.AcquireXmlWriterForResourceDictionary();

                Size fixedPageSize = ((IXpsSerializationManager)SerializationManager).FixedPageSize;

                VisualTreeFlattener flattener = ((IXpsSerializationManager)SerializationManager).
                                                VisualSerializationService.AcquireVisualTreeFlattener(resWriter,
                                                                                                      pageWriter,
                                                                                                      fixedPageSize);

                return(flattener.StartVisual(v));
            }

            return(false);
        }
Ejemplo n.º 2
0
        SerializeNextTreeNode(
            ReachVisualSerializerContext context
            )
        {
            if (context.ContextStack.Count > 0)
            {
                Stack <NodeContext> contextStack = context.ContextStack;
                VisualTreeFlattener flattener    = context.VisualFlattener;

                ReachVisualSerializerContext nextContext = new ReachVisualSerializerContext(this,
                                                                                            contextStack,
                                                                                            flattener,
                                                                                            SerializerAction.serializeNextTreeNode);

                ((IXpsSerializationManagerAsync)SerializationManager).OperationStack.Push(nextContext);


                NodeContext ctx = contextStack.Peek();

                Visual v = ctx.GetNextChild();

                if (v != null)
                {
                    if (flattener.StartVisual(v))
                    {
                        contextStack.Push(new NodeContext(v));
                    }
                }
                else
                {
                    contextStack.Pop();
                    flattener.EndVisual();
                }
            }
        }
Ejemplo n.º 3
0
        SerializeDisguisedVisual(
            object serializedObject
            )
        {
            Visual v = serializedObject as Visual;

            if (v == null)
            {
                throw new ArgumentException(SR.Get(SRID.MustBeOfType, "serializedObject", typeof(Visual)));
            }

            IXpsSerializationManagerAsync manager = (IXpsSerializationManagerAsync)SerializationManager;

            XmlWriter pageWriter = ((PackageSerializationManager)manager).
                                   PackagingPolicy.AcquireXmlWriterForPage();

            XmlWriter resWriter = ((PackageSerializationManager)manager).
                                  PackagingPolicy.AcquireXmlWriterForResourceDictionary();

            Size fixedPageSize            = ((IXpsSerializationManager)SerializationManager).FixedPageSize;
            VisualTreeFlattener flattener = ((IXpsSerializationManager)SerializationManager).
                                            VisualSerializationService.AcquireVisualTreeFlattener(resWriter,
                                                                                                  pageWriter,
                                                                                                  fixedPageSize);

            return(flattener.StartVisual(v));
        }
Ejemplo n.º 4
0
        SerializeTree(
            Visual visual,
            XmlWriter resWriter,
            XmlWriter bodyWriter
            )
        {
            Size fixedPageSize = ((IXpsSerializationManager)SerializationManager).FixedPageSize;

            VisualTreeFlattener flattener = ((IXpsSerializationManagerAsync)SerializationManager).
                                            VisualSerializationService.AcquireVisualTreeFlattener(resWriter,
                                                                                                  bodyWriter,
                                                                                                  fixedPageSize);

            if (flattener.StartVisual(visual))
            {
                Stack <NodeContext> contextStack = new Stack <NodeContext>();
                contextStack.Push(new NodeContext(visual));

                ReachVisualSerializerContext context = new ReachVisualSerializerContext(this,
                                                                                        contextStack,
                                                                                        flattener,
                                                                                        SerializerAction.serializeNextTreeNode);

                ((IXpsSerializationManagerAsync)SerializationManager).OperationStack.Push(context);
            }
        }
Ejemplo n.º 5
0
        SerializeTree(
            Visual visual,
            XmlWriter resWriter,
            XmlWriter bodyWriter
            )
        {
            Toolbox.EmitEvent(EventTrace.Event.WClientDRXSerializeTreeStart);


            Size fixedPageSize = ((IXpsSerializationManager)SerializationManager).FixedPageSize;

            VisualTreeFlattener flattener = ((IXpsSerializationManager)SerializationManager).
                                            VisualSerializationService.AcquireVisualTreeFlattener(resWriter,
                                                                                                  bodyWriter,
                                                                                                  fixedPageSize);

            Stack <NodeContext> contextStack = new Stack <NodeContext>();

            if (flattener.StartVisual(visual))
            {
                contextStack.Push(new NodeContext(visual));
            }

            while (contextStack.Count > 0)
            {
                NodeContext ctx = contextStack.Peek();

                Visual v = ctx.GetNextChild();
                if (v != null)
                {
                    if (flattener.StartVisual(v))
                    {
                        contextStack.Push(new NodeContext(v));
                    }
                }
                else
                {
                    contextStack.Pop();
                    flattener.EndVisual();
                }
            }

            Toolbox.EmitEvent(EventTrace.Event.WClientDRXSerializeTreeEnd);
        }