0

是否可以绑定图像集合并更改它们的 Canvas.Left 和 Canvas.Top 属性?我知道如何将它们绑定到 ListBox,但是,我希望更改它们的位置并将图像分散在各处。

下面的代码将数据发送到 ListBox 并以列表效果一个接一个地呈现图像 - 当然。

我无法使用 Canvas.Left/Top 属性,因为显然图像位于列表框中。

XML

<ListBox x:Name="listBoxItems">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Margin="5">
                    <Image Source="{Binding ImageUri}" Stretch="None" />
                    <TextBlock Text="{Binding Room.Items.ImageUri}"></TextBlock>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

C#

_roomView = new RoomViewModel();
            _roomView.Room = new Room
            {
                Items = new List<Item> {
                new Item {ImageUri = "/Escape;component/Images/Items/a.jpg"},
                new Item {ImageUri = "/Escape;component/Images/Items/b.png"},
                new Item {ImageUri = "/Escape;component/Images/Items/b.png"}}
            };

            listBoxItems.ItemsSource = _roomView.Room.Items;

有谁知道我怎么能做到这一点?

4

1 回答 1

1

如果您在 StackPanel 的ItemTemplate Canvas 使用,您可以在 Image 和 TextBlock 上使用AttachedProperty: Canvas.Top/Canvas.Left 。有了它,您可以根据需要设置项目的位置。我希望它可以帮助你。

于 2013-02-13T00:21:56.157 回答