Кнопка Silverlight 3 - проблемы с выравниванием текста и изображений - PullRequest
0 голосов
/ 20 января 2011

Я пытаюсь, чтобы кнопка содержала текст с изображением. В идеале текст должен быть выровнен по левому краю, а изображение должно быть максимально правым.

Итак, я создаю сетку, добавляю к ней изображение и текстовый блок и устанавливаю его выравнивание. На всю жизнь я не могу заставить себя действовать так, как ожидалось.

 var gridPanel = new Grid();
        gridPanel.ColumnDefinitions.Add(new ColumnDefinition());

        var text = new TextBlock { Text = header, TextAlignment = TextAlignment.Left };
        text.HorizontalAlignment = HorizontalAlignment.Left;
        text.Margin = new Thickness(0);
        text.SetValue(Grid.RowProperty, 0);
        text.SetValue(Grid.ColumnProperty, 0);

        var image = new Image();
        image.Source = new BitmapImage(new Uri("../Images/Common/RedFlag.png", UriKind.Relative));
        image.HorizontalAlignment = HorizontalAlignment.Right;
        image.Height = 25;
        image.Width = 25;
        image.SetValue(Grid.RowProperty, 0);
        image.SetValue(Grid.ColumnProperty, 1);

        gridPanel.Children.Add(text);
        gridPanel.Children.Add(image);

        button.Content = gridPanel;

И изображение, и текст по какой-то причине выровнены по центру ... Является ли Grid неправильным путем? Я попробовал StackPanel и установил его ориентацию по горизонтали, но это было то же самое ..

Ответы [ 2 ]

1 голос
/ 20 января 2011

по умолчанию для HorizontalContentAlignment кнопки установлено значение «Центр» ... Просто установите для него значение «Растянуть» следующим образом:

button.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Stretch;
0 голосов
/ 20 января 2011

Измените HorizontalContentAlignment с Center на Stretch, например-

<Button Name="button" HorizontalContentAlignment="Stretch"/>

Edit - я изначально делал это в стиле кнопки, так как не знал о свойстве HorizontalContentAlignment

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...