private void LayoutDisplayPanel()

in WhackAMole.UWPClient/Controls/MoleControl.cs [274:312]


        private void LayoutDisplayPanel()
        {

            if (_displayTransform == null || _displayBorder == null || _mole == null)
                return;
            

            int angle = 0;
            double offSetX = _displayBorder.ActualWidth - _mole.ActualWidth;

            var align = DisplayAlignment;
            switch (align)
            {

                case MoleAlignment.BottomRight:
                    offSetX = 0;
                    angle = 315;
                    break;
                case MoleAlignment.BottomLeft:
                    _displayTransform.CenterX = 1;

                    angle = 225;
                    break;
                case MoleAlignment.TopRight:
                    offSetX = 0; ;
                    angle = 45;
                    break;
                case MoleAlignment.TopLeft:
                    _displayTransform.CenterX = 1;
                    angle = 135;
                    break;
                default:
                    break;
            }
            double radius = _mole.ActualWidth  + 10;
            var targetPoint = new Point(((Math.Cos(angle * Math.PI / 180) * radius)) , ( -Math.Sin(angle*Math.PI / 180) * radius));
            _displayTransform.TranslateX = targetPoint.X - offSetX;
            _displayTransform.TranslateY = targetPoint.Y;
        }