Ejemplo n.º 1
0
        XpsPackagingPolicy(
            System.Windows.Xps.Packaging.XpsDocument xpsPackage,
            PackageInterleavingOrder interleavingType
            ) :
            base()
        {
            if (xpsPackage == null)
            {
                throw new ArgumentNullException("xpsPackage");
            }

            this._reachPackage = xpsPackage;
            Initialize();

            _interleavingPolicy = new XpsInterleavingPolicy(interleavingType, true);
            _interleavingPolicy.AddItem((INode)xpsPackage, 0, null);

            _fontAcquireMode = ResourceAcquireMode.NoneAcquired;
            _fontsCache      = new Hashtable(11);

            _fontResourceStream               = null;
            _imageResourceStream              = null;
            _colorContextResourceStream       = null;
            _resourceDictionaryResourceStream = null;

            InitializeResourceReferences();
        }
        XpsInterleavingPolicy(
            PackageInterleavingOrder type,
            bool flushOnSubsetComplete
            )
        {
            _flushOrderItems  = new Hashtable(11);
            _interleavingType = type;
            switch (type)
            {
            case PackageInterleavingOrder.None:
                break;

            case PackageInterleavingOrder.ResourceFirst:
            {
                InitializeResourceFirst();
                break;
            }

            case PackageInterleavingOrder.ResourceLast:
            {
                InitializeResourceLast();
                break;
            }

            case PackageInterleavingOrder.ImagesLast:
            {
                InitializeImagesLast();
                break;
            }

            default:
                break;
            }

            _flushOnSubsetComplete = flushOnSubsetComplete;
        }