0

画像のコレクションをバインドし、その Canvas.Left および Canvas.Top プロパティを変更することは可能ですか? それらをListBoxにバインドする方法は知っていますが、それらの場所を変更して画像を散らばらせたいと思っています。

次のコードは、データを ListBox に送信し、リスト効果で画像を 1 つずつレンダリングします - もちろん。

明らかにイメージがリスト ボックスにあるため、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で使用する場合は、AttachedProperty: Canvas.Top/Canvas.Leftを Image と TextBlock でも使用できます。これにより、アイテムの位置を好きなように設定できます。お役に立てば幸いです。

于 2013-02-13T00:21:56.157 に答える