SilverFlow.Controls.FloatingWindow.SetInitialRootPosition C# (CSharp) Method

SetInitialRootPosition() private method

Shift the root of the window to compensate its margins.
private SetInitialRootPosition ( ) : void
return void
        private void SetInitialRootPosition()
        {
            double x = Math.Round(-this.Margin.Left);
            double y = Math.Round(-this.Margin.Top);

            var transformGroup = (root.RenderTransform as TransformGroup).Clone();
            if (transformGroup == null)
            {
                transformGroup = new TransformGroup();
                transformGroup.Children.Add(root.RenderTransform);
                root.RenderTransform = transformGroup;
            }

            var translateTransform = transformGroup.Children.OfType<TranslateTransform>().FirstOrDefault();
            if (translateTransform == null)
            {
                transformGroup.Children.Add(new TranslateTransform() { X = x, Y = y });
            }
            else
            {
                translateTransform.X = x;
                translateTransform.Y = y;
            }

            root.RenderTransform = transformGroup;
        }
FloatingWindow