Пример #1
0
        internal static void PropagateFlowDirection(Element target, Element source)
        {
            IFlowDirectionController controller = target as IFlowDirectionController;

            if (controller == null)
            {
                return;
            }

            var sourceController = source as IFlowDirectionController;

            if (sourceController == null)
            {
                return;
            }

            if (controller.EffectiveFlowDirection.IsImplicit())
            {
                var flowDirection = sourceController.EffectiveFlowDirection.ToFlowDirection();

                if (flowDirection != controller.EffectiveFlowDirection.ToFlowDirection())
                {
                    controller.EffectiveFlowDirection = flowDirection.ToEffectiveFlowDirection();
                }
            }

            controller.EffectiveFlowDirection = controller.EffectiveFlowDirection;
        }
Пример #2
0
        internal static void SetFlowDirectionFromParent(Element child)
        {
            IFlowDirectionController controller = child as IFlowDirectionController;

            if (controller == null)
            {
                return;
            }

            if (controller.EffectiveFlowDirection.IsImplicit())
            {
                var parentView = child.Parent as IFlowDirectionController;
                if (parentView == null)
                {
                    return;
                }

                var flowDirection = parentView.EffectiveFlowDirection.ToFlowDirection();

                if (flowDirection != controller.EffectiveFlowDirection.ToFlowDirection())
                {
                    controller.EffectiveFlowDirection = flowDirection.ToEffectiveFlowDirection();
                }
            }
        }