コード例 #1
0
        float CalculateIconX(bool focused)
        {
            var iconX = Padding.Left();

            if (TextBox.TextAlignment.ToHorizontalAlignment() == HorizontalAlignment.Center)
            {
                var textWidth = TextBox.Font.GetTextWidth(TextBox.Text.Or(TextBox.Placeholder));
                var textStart = (TextBox.ActualWidth + TextBox.Padding.Horizontal() - textWidth) / 2;
                if (!FirstRun && !focused)
                {
                    textStart += CancelButtonActualWidth / 2;
                }

                iconX = textStart - TextBox.Padding.Left() - TextBox.Margin.Left();

                iconX -= Icon.ActualWidth;
                iconX -= Icon.Margin.Right();

                iconX = Math.Max(iconX, Padding.Left());
            }

            return(iconX);
        }