Мне нужно написать несколько кругов на холсте в wpf. У меня есть этот учебник в качестве основы, но это не будет работать как-то: http://www.wpf-tutorial.com/list-controls/itemscontrol/Рисование нескольких кругов в wpf с помощью ItemsControl
мой XAML
<ItemsControl Name="icCircles">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Background="Transparent" Width="300" Height="500"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Ellipse Canvas.Top="{Binding X}" Canvas.Left="{Binding Y}" Fill="Black" Height="5" Width="5" Stroke="Black" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
код позади:
List<Circle> circles = new List<Circle>();
circles.Add(new Circle() { X = 50, Y = 50 });
circles.Add(new Circle() { X = 100, Y = 50 });
icCircles.ItemsSource = circles;
класс круг:
public class Circle
{
public int X { get; set; }
public int Y { get; set; }
}
Если я ничего не добавлю к списку, я ничего не получу. если я добавлю один круг, я вижу его, но в X0/Y0. если я добавлю второй, я все еще вижу только один круг. возможно потому, что они находятся в одном месте.
что я делаю неправильно?
Посмотрите на [этот ответ] (http://stackoverflow.com/a/22325266/1136211). Ключевым моментом является привязка Canvas.Left и Canvas.Top в ItemContainerStyle. – Clemens