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; }
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(); } } }