Maybe I'm wrong, but this is apparently a fairly simple problem (I may have been completely wrong, but I'm not sure, so just in case I agree with this assumption).
You have determined that your ListView should be 200 by 200, and your Canvas takes up all this space. Judging by your picture, I feel like Canvas you want to be 200 by 200, not ListView .
Xaml:
<Grid > <ListView BorderThickness="0" BorderBrush="Transparent" ItemsSource="{Binding Rectangles}"> <ListView.Resources> <Style TargetType="{x:Type ListViewItem}"> <Setter Property="Canvas.Left" Value="{Binding Left, Mode=TwoWay}" /> <Setter Property="Canvas.Top" Value="{Binding Top, Mode=TwoWay}" /> </Style> </ListView.Resources> <ListView.ItemTemplate> <DataTemplate DataType="{x:Type wpfApplication1:RectangleModel}"> <Rectangle Width="30" Height="10" Canvas.Left="{Binding Left}" Canvas.Top="{Binding Top}" Fill="LightCoral" ClipToBounds="False"/> </DataTemplate> </ListView.ItemTemplate> <ListView.ItemsPanel> <ItemsPanelTemplate> <Canvas Background="LightBlue" ClipToBounds="False" Height="200" Width="200"/> </ItemsPanelTemplate> </ListView.ItemsPanel> </ListView> </Grid>
Result:

source share