Ejemplo n.º 1
0
 public RenderElementDrawingContext(IContainerRenderElement container, IRenderElementFactory factory)
 {
     this.container         = container;
     this.factory           = factory;
     this.availableChildren = container.Children?.ToList();
     this.children          = new List <object>();
 }
Ejemplo n.º 2
0
        private void SetInnerContext(IContainerRenderElement innerContainer)
        {
            if (innerContext != null)
            {
                throw new Granular.Exception("Inner context is already set");
            }

            innerContext         = new RenderElementDrawingContext(innerContainer, factory);
            innerContext.Closed += (sender, e) => innerContext = null;
        }
Ejemplo n.º 3
0
        protected override object CreateRenderElementContentOverride(IRenderElementFactory factory)
        {
            if (drawingRenderElement == null)
            {
                renderElementFactory = factory;
                drawingRenderElement = factory.CreateDrawingRenderElement(this);

                RenderAsync();
            }

            return(drawingRenderElement);
        }
Ejemplo n.º 4
0
        public void OpenHinge()
        {
            if (_isOpen)
            {
                return;
            }
            _isOpen = true;
            //-----------------------------------
            if (LandPart == null)
            {
                return;
            }
            if (FloatPart == null)
            {
                return;                   //may be null
            }
            switch (FloatPartStyle)
            {
            default:
            case HingeFloatPartStyle.Popup:
            {
                RenderElement renderE = LandPart.CurrentPrimaryRenderElement;
                if (renderE != null)
                {
                    IContainerRenderElement topRenderBox = renderE.GetTopWindowRenderBox();
                    if (topRenderBox != null)
                    {
                        Point globalLocation = LandPart.GetGlobalLocation();
                        FloatPart.SetLocation(globalLocation.X, globalLocation.Y + LandPart.Height);
                        _floatPartRenderElement = FloatPart.GetPrimaryRenderElement();
                        topRenderBox.AddChild(_floatPartRenderElement);
                    }
                }
            }
            break;

            case HingeFloatPartStyle.Embeded:
            {
            }
            break;
            }
        }
Ejemplo n.º 5
0
        public static void SetChildren(this IContainerRenderElement container, IEnumerable <object> children)
        {
            if (container.Children.SequenceEqual(children))
            {
                return;
            }

            foreach (object child in container.Children.ToArray())
            {
                container.RemoveChild(child);
            }

            int index = 0;

            foreach (object child in children)
            {
                container.InsertChild(index, child);
                index++;
            }
        }
Ejemplo n.º 6
0
            public void Remove(UIElement parent, T ui)
            {
                parent._needContentLayout = true;
                parent._hasMinSize        = false;

                IContainerRenderElement parentContainer = parent.CurrentPrimaryRenderElement as IContainerRenderElement;

                if (parentContainer != null)
                {
                    parentContainer.RemoveChild(ui.GetPrimaryRenderElement());
                }

                _list.Remove(ui);//***
                ui.ParentUI = null;
                //---
                //presentation
                if (parentContainer != null)
                {
                    CollectionHelper.UpdateLayout(parent, ui);
                }
            }
Ejemplo n.º 7
0
 public static void AddChild(this IContainerRenderElement renderBox, UIElement ui)
 {
     renderBox.AddChild(ui.GetPrimaryRenderElement());
 }