Verwendung von Canvas als ItemsPanel für ein ItemsControl in Silverlight 3

Ich versuche, die Canvas-Eigenschaften in einem ItemsControl DataTemplate mit Silverlight 3 einzustellendieser BeitragDies können Sie nur mit ItemsContainerStyle für den ContentPresenter-Typ festlegen, da die Canvas-Eigenschaften nur für direkte untergeordnete Elemente des Canvas-Objekts gelten. Dies scheint in SL3 nicht zu funktionieren, da das ItemsControl keine ItemsContainerStyle-Eigenschaft hat, also habe ich eine ListBox ausprobiert, wie von empfohlenDieser Beitrag, aber es funktioniert immer noch nicht. In der folgenden XAML würde ich ein grünes Quadrat mit den Zahlen 10, 30, 50 und 70 erwarten, die von "NW" nach "SE" kaskadieren. Kann mir jemand sagen, warum sie alle in der NW-Ecke übereinander gestapelt sind?

<UserControl x:Class="TestControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:System="clr-namespace:System;assembly=mscorlib" >
    <StackPanel>
        <ListBox>
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <Canvas Background="Green" Width="100" Height="100" />
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding}" />
                </DataTemplate>                
            </ListBox.ItemTemplate>
            <ListBox.ItemContainerStyle>
                <Style TargetType="ContentPresenter">
                    <Setter Property="Canvas.Left" Value="{Binding}" />
                    <Setter Property="Canvas.Top" Value="{Binding}" />
                </Style>
            </ListBox.ItemContainerStyle>
            <ListBox.Items>
                <System:Int32>10</System:Int32>
                <System:Int32>30</System:Int32>
                <System:Int32>50</System:Int32>
                <System:Int32>70</System:Int32>
            </ListBox.Items>
        </ListBox>
    </StackPanel>
</UserControl>

Antworten auf die Frage(4)

Ihre Antwort auf die Frage