2014-06-13 3 views
0
for (int i = 0; i < length; i++) 
{ 
    Image img1 ; 
    img1 = null; 
    img1= new Image(); 

    img1.Height = snhei;  
    img1.Width = snwid; 
    BitmapImage BitImg = new BitmapImage(new Uri("/Assets/midtail.png", UriKind.Relative));` 

    img1.VerticalAlignment = VerticalAlignment.Top; 
    img1.HorizontalAlignment = HorizontalAlignment.Left; 
    img1.Source = BitImg; 
    img1.Stretch = Stretch.Fill; 
    img1.Name = "mid" + i.ToString() ; 
    img1.Margin = new Thickness(image_width*i, 0, 0, 0); 

    stackp.Children.Add(img1); 
} 

после запуска я получить первое изображение в 0,0 то делает одну image_width нижеДобавление изображения в Xaml не оказывающее с заданным запасом

+0

Имя контейнера 'stackp' предполагает, что вы используете StackPanel. Просто установите для свойства 'Orientation' значение' Horizontal' и не устанавливайте поля на изображениях. – Clemens

+0

@ Clemens Я запускал приложение, как вы сказали. почему изображения не перекрываются? ** Я хочу, чтобы изображения перекрывались ** –

+0

Не знаю, что вы имеете в виду. Пожалуйста, добавьте некоторые детали к вашему вопросу о том, что именно вы собираетесь достичь. Также может оказаться полезным скриншот или эскиз. – Clemens

ответ

1

Проблемы является вашим контейнером. StackPanel будет, как указывается в названии, попытаться выполнить стекирование изображений. Затем вы применяете границу, перемещая изображение дальше.

У вас есть два решения, в зависимости от того, что вы хотите:

  • Если вы просто хотите изображения, которые будут отображаться бок о бок, установите Orientation свойство вашего StackPanel в Horizontal. Затем удалите свою строку кода, которая устанавливает маржу, так как позиционирование автоматически обрабатывается с помощью StackPanel

  • Если вы все еще хотите поместить фотографии вручную, вам нужно использовать другой тип контейнера. Замените StackPanel на холст или сетку.

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

  • Нет связанных вопросов^_^