I found solution a , but (for me) it smells.
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Canvas Width="200" Height="200">
<TextBlock
Text="{Binding Path=Name}"
Canvas.Left="{Binding Path=XPos}"
Canvas.Top="{Binding Path=YPos}" />
</Canvas>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Width="200" Height="200"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Each element has its own canvas, so it ends on top of eachother.
source
share