2011-01-19 3 views
0

Я пытаюсь, чтобы кнопка содержала как текст изображения. В идеале текст выравнивается влево, а изображение максимально точно.Silverlight 3 Button - Текст + Проблемы с выравниванием изображений

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

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; 

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

ответ

1

по умолчанию HorizontalContentAlignment кнопки устанавливается в «центр» ... Просто установите его в «Stretch» ​​так:

button.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Stretch; 
+0

+1: Никогда не знал, что вы можете это сделать –

0

Измените HorizontalContentAlignment от центра к простиранию,

, как-
<Button Name="button" HorizontalContentAlignment="Stretch"/> 

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

Смежные вопросы