0

Как "заспавнить" нужный мне контролл, а именно Image, в определенной точке определенного родителя через код? В WF это делается добавлением контролла в массив элементов родителю, а как делать тоже самое в WPF я не нашел

Minebot
  • 722
  • 1
    Вам не должно этого хотеться. В WPF вы не конструируете UI императивным способом, а описываете то, что вы хотите получить, декларативно, в XAML. – VladD Mar 03 '17 at 15:01
  • @VladD Ну, мне надо сделать много однотипных элементов. Вы предлагаете это делать пресетами в XAML? Или как? – Minebot Mar 03 '17 at 15:11
  • 1
    Через ItemsControl проще всего, например. – VladD Mar 03 '17 at 15:14
  • 2
    Вот пример с созданием ста шестиугольников: http://ru.stackoverflow.com/a/632894/10105 – VladD Mar 03 '17 at 15:15
  • @VladD В моём случае кол-во и тип объектов будет зависеть от условия. Будет странно, если я буду к каждому условию делать пресет. Я думаю будет лучше сгенирировать – Minebot Mar 03 '17 at 15:18
  • А вы почитайте пример повнимательнее. Там количество элементов тоже задаётся отдельно и нигде жёстко не прописано. – VladD Mar 03 '17 at 15:19
  • 2
    @VladD Окей, посмотрю, спасибо. Похоже я плохо понимаю всю систему в WPF – Minebot Mar 03 '17 at 15:20

1 Answers1

2

во всех контролах WPF с множеством дочерних элементов есть свойство Children

пример использования:

var img = new Image(...);
HouseCanvas.Children.Add(img);
Canvas.SetLeft(img, 20); //позиционирование 
Canvas.SetTop(img, 20); //позиционирование
Yurii Manziuk
  • 823
  • 6
  • 15