コード例 #1
0
ファイル: SwapChain.cs プロジェクト: qcjxberin/MPF
        private void OnUpdate(Visual visual, Visual parent, bool forceArrange)
        {
            var element = visual as UIElement;

            if (element != null)
            {
                var flags = element.UIFlags;
                if (forceArrange || flags.HasFlag(UIElementFlags.MeasureDirty))
                {
                    element.Measure(element.LastAvailableSize);
                }
                if (forceArrange || flags.HasFlag(UIElementFlags.ArrangeDirty))
                {
                    forceArrange = true;
                    element.Arrange(GetArrangeRect(element));
                }
            }
            if (forceArrange || visual.VisualFlags.HasFlag(VisualFlags.RenderDirty))
            {
                visual.Render();
            }

            foreach (var child in visual.VisualChildren)
            {
                OnUpdate(child, visual, forceArrange);
            }
        }