2011-01-19 53 views
0

我想有一个按钮,同时包含一个图像文本。理想情况下文本左对齐,而图像尽可能正确。Silverlight 3的按钮 - 文字+图片对齐问题

所以我创建了一个网格,并添加图像和文本块给它,并设置其对齐。对于我的生活,我不能按照预期行事。

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

默认按钮的Horizo​​ntalContentAlignment设置为“中心” ...只是将其设置为“拉伸”这样的:

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

+1:永远不知道你能做到这一点 – 2011-01-20 16:00:11

0

变化从中心Horizo​​ntalContentAlignment伸展,喜欢 -

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

编辑 - 原本我是这样做的按钮样式因为我不知道没有关于Horizo​​ntalContentAlignment财产