Wie verwenden von Canvas als ItemsPanel für ein ItemsControl, die in Silverlight 3

Ich versuche, legen Sie die Leinwand-Eigenschaften in einem ItemsControl DataTemplate mit Silverlight 3. Nach dieser Beitrag, der einzige Weg, dies zu tun ist, um es mit dem ItemsContainerStyle für den ContentPresenter geben, da die Leinwand Eigenschaften wirken nur auf die direkten Kinder von der Leinwand. Dies scheint nicht zu funktionieren in SL3, da das ItemsControl ist nicht eine ItemsContainerStyle Eigenschaft, so versuchte ich eine ListBox, wie angeraten durch dieser Artikel, aber es funktioniert immer noch nicht. Aus der XAML-unten, würde ich erwarten, sehen Sie ein grünes Quadrat mit den zahlen 10, 30, 50, 70 Kaskadierung von "NW" zu "SE" Richtung. Kann mir jemand sagen, warum Sie alle gestapelt oben auf einander in der NW-Ecke?

<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>
  • Dank der skb, das beantwortet meine Frage, die war, wie dies in WPF 🙂 Wie Sie sagen, es funktioniert Super in WPF.
InformationsquelleAutor skb | 2010-03-05
Schreibe einen Kommentar