Exemple #1
0
 public LayoutPathChildWrapper(FrameworkElement child, ChildAlignment alingment, Orientations orientation)
 {
     Content         = child;
     DefaultStyleKey = typeof(LayoutPathChildWrapper);
     RenderTransform = Transform = new CompositeTransform();
     Loaded         += delegate
     {
         UpdateAlignment(alingment, orientation);
     };
 }
Exemple #2
0
        internal void UpdateAlignment(ChildAlignment alignment, Orientations orientation)
        {
            if (ALIGNMENT == null)
            {
                return;
            }

            var translate = ALIGNMENT.RenderTransform as TranslateTransform;

            if (translate == null)
            {
                return;
            }

            if (alignment == ChildAlignment.Center)
            {
                translate.X = translate.Y = 0;
            }
            else
            {
                int flipValue = 1;
                if (orientation == Orientations.ToPathReversed || orientation == Orientations.VerticalReversed)
                {
                    flipValue = -1;
                }
                var child = (FrameworkElement)Content;
                if (orientation == Orientations.ToPath || orientation == Orientations.ToPathReversed)
                {
                    translate.X = 0;
                    if (alignment == ChildAlignment.Outer)
                    {
                        translate.Y = child.ActualHeight * flipValue * -1 / 2.0;
                    }
                    else
                    {
                        translate.Y = child.ActualHeight * flipValue / 2.0;
                    }
                }
                else
                {
                    translate.Y = 0;
                    if (alignment == ChildAlignment.Outer)
                    {
                        translate.X = child.ActualWidth * flipValue * -1 / 2.0;
                    }
                    else
                    {
                        translate.X = child.ActualWidth * flipValue / 2.0;
                    }
                }
            }
        }
 public override void Reset()
 {
     gameObject     = null;
     childAlignment = ChildAlignment.UpperLeft;
     everyFrame     = false;
 }