2011-06-16 40 views
1

我想在代碼中設置一個Image Horizo​​ntalAlignment屬性,而不是XAML,但它無法工作:Silverlight中的Horizo​​ntalAlignment不工作

 
Grid grid = new Grid(); 
grid.ColumnDefinitions.Add(new ColumnDefinition()); 
grid.ColumnDefinitions.Add(new ColumnDefinition()); 

Image img = new Image() { Source = new Uri("myImage.png") }; 
Grid.SetColumn(img, 1); 
img.HorizontalAlignment = HorizontalAlignment.Right; 

grid.Children.Add(img); 

此代碼應創建一個網格單排兩列,那麼應該將圖像添加到第二列並一直固定到右側,但圖像仍停留在第二列的左側。

這怎麼可能? VerticalAlignment在圖像上正常工作...

回答

1

一個Image.Stretch屬性的默認值是Stretch.Uniform。這聽起來就是你想要它設置爲Stretch.None

img.Stretch = Stretch.None 

事情會按照您的預期行事。

1

那麼你的「圖像」行似乎錯過了一些東西,但這似乎並不是問題。我認爲問題在於網格會改變其元素的大小,因爲這個圖像似乎保留了整個「單元」的大小。給你的圖像一些小的寬度和高度,看看會發生什麼。

或檢查:

Grid grid = new Grid(); 
grid.ColumnDefinitions.Add(new ColumnDefinition()); 
grid.ColumnDefinitions.Add(new ColumnDefinition()); 

Image img = new Image() 
    { Source = new BitmapImage(new Uri("SaveIcon.PNG", UriKind.Relative)) }; 
img.Width = 32D; 
img.Height = 32D; 

Grid.SetColumn(img, 1); 
img.HorizontalAlignment = HorizontalAlignment.Right; 

grid.Children.Add(img); 

LayoutRoot.Children.Add(grid); 
相關問題