Silverlight HorizontalAlignment не работает - PullRequest
1 голос
/ 17 июня 2011

Я пытаюсь установить свойство 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 корректно работает на изображении ...

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Значением по умолчанию для свойства Image.Stretch является Stretch.Uniform.Мне кажется, что вы хотите, чтобы он был установлен на Stretch.None.

 img.Stretch = Stretch.None

Тогда все будет вести себя так, как вы ожидаете.

1 голос
/ 17 июня 2011

Что ж, ваша строка «Имидж», кажется, что-то упустила, однако это не кажется проблемой.Я думаю, что проблема в том, что сетка меняет размер своих элементов, из-за этого изображение, кажется, сохраняет весь размер "ячейки".Дайте вашему изображению небольшую ширину и высоту и посмотрите, что произойдет.

или отметьте это:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...