我想从我自己的数据类型中读出图像,并通过ItemControl Binding将List同步到Grid / WrapPanel。
我的XAML:
<WrapPanel >
<ItemsControl Name="images">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Link}" Stretch="None" ></Image>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</WrapPanel>
C#代码:
public MainWindow()
{
InitializeComponent();
List<Movie> items = new List<Movie>();
items.Add(new Movie() { Name = "Movie1", Link = "http://www.airvana.com/default/cache/file/1601D22D-9266-DE31-D6B8D178DB2933DC_small.png", Column =0 });
items.Add(new Movie() { Name = "Movie2", Link = "http://www.airvana.com/default/cache/file/1601D22D-9266-DE31-D6B8D178DB2933DC_small.png"});
items.Add(new Movie() { Name = "Movie2", Link = "http://www.airvana.com/default/cache/file/1601D22D-9266-DE31-D6B8D178DB2933DC_small.png"});
// items.Add(new Movie() { Name = "Movie3"});
images.ItemsSource = items;
}
}
public class Movie
{
public string Name { get; set; }
public string Link { get; set; }
}
这一切都很好,只有我遇到的问题(以及为什么我尝试使用WrapPanel而不是网格)是所有3张图像都在彼此之下,而不是彼此相邻。
如果我在没有Binding的情况下执行此操作,只使用WrapPanel并添加3张图像,则效果非常好。
基本上我想做的是一组图像,比如图片拼贴 - 有更好的方法吗?
答案 0 :(得分:2)
ItemsPanelTemplate,用于定义用于项目布局的面板。 ItemsControl的默认值是ItemsPanelTemplate,它指定StackPanel 。
在acl liberaip src 130.44.0.215
acl block url_regex -i youtube facebook
http_access allow liberaip !block
中缠绕一堆垂直堆叠的图像不会使它们成为水平。您需要将布局更改为:
WrapPanel