我正在尝试在代码中设置Image
HorizontalAlignment属性,而不是XAML,但它无法工作:
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在图像上正常工作......
答案 0 :(得分: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);
答案 1 :(得分:1)
Image.Stretch
属性的默认值为Stretch.Uniform
。听起来你想要它设置为Stretch.None
。
img.Stretch = Stretch.None
然后事情将按照您的预期行事。