Esempio n. 1
0
        public void SetZOrder(Control c, int value)
        {
            if (value == -1)
            {
                RemoveControl(c);
                return;
            }

            ZOrderedControlEntry controlEntry;
            if (!_zOrderedControls.TryGetValue(c, out controlEntry))
            {
                controlEntry = new ZOrderedControlEntry(c);
                _zOrderedControls.Add(c, controlEntry);

                if (c.Parent != null)
                    AssignZOrderManager(controlEntry, c.Parent);

                c.ParentChanged += OnZOrderedControlParentChanged;
                c.Disposed += OnZOrderedControlDisposed;
            }

            controlEntry.ZOrder = value;
        }
Esempio n. 2
0
        private void AssignZOrderManager(ZOrderedControlEntry entry, Control container)
        {
            if (container == null)
            {
                entry.Manager = null;
                return;
            }

            if (entry.Manager != null && entry.Manager.Container == container)
                return;

            ZOrderManager manager;
            if (!_zOrderManagers.TryGetValue(container, out manager))
            {
                manager = new ZOrderManager(container);
                _zOrderManagers.Add(container, manager);
            }

            entry.Manager = manager;
        }