Пример #1
0
        protected override Size MeasureOverride(Size availableSize)
        {
            // Remove windows
            foreach (var dockItem in RemoveQueue)
            {
                Controller.DetachWindow(dockItem);
            }

            // Add windows
            foreach (var dockItem in AddQueue)
            {
                Controller.AttachWindow(dockItem);
            }

            // Update windows
            foreach (var dockItem in UpdateQueue)
            {
                Controller.UpdateWindow(dockItem);
            }

            Controller.ArrangeWindows();

            AddQueue.Clear();
            RemoveQueue.Clear();
            UpdateQueue.Clear();

            return(base.MeasureOverride(availableSize));
        }
Пример #2
0
            public void Process()
            {
                if (ToBeCleared)
                {
                    Clear();
                    AddQueue.Clear();
                    RemoveQueue.Clear();
                    return;
                }

                while (AddQueue.Count > 0)
                {
                    ProcessAdd(AddQueue.Dequeue());
                }
                while (RemoveQueue.Count > 0)
                {
                    base.Remove(RemoveQueue.Dequeue());
                }

                return;
            }