我在WPF / C#中有一个简单的问题。 我想将一些图像拖放到一个布局中,并根据图像的数量调整它们的大小(它可以超过2个!)。
我对Drag& Drop系统没有任何问题。我的问题是关于调整大小元素/拆分布局。我尝试了一些事情,例如将ItemsControl
与WrapPanel
一起使用,但它无效。我只看到全尺寸的图像1。
ItemsControl
WrapPanel
是一个好方法吗? 这是我的XAML
<ItemsControl x:Name="list" AllowDrop="True"
Drop="list_Drop" Background="Transparent" Grid.IsSharedSizeScope="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" BorderBrush="{x:Null}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel ScrollViewer.VerticalScrollBarVisibility="Disabled" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
这是我的代码隐藏
private void list_Drop(object sender, DragEventArgs e)
{
Thumbnail thumbnail = sender as Thumbnail;
Image addedImg = new Image();
addedImg.Source = (BitmapImage)e.Data.GetData(typeof(BitmapImage));
list.Items.Add(addedImg);
this.UpdateLayout();
}
谢谢!
答案 0 :(得分:2)
将ItemsPanel设置为UniformGrid的ItemsControl。
<ItemsControl ItemsSource="{Binding ImagesList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid/>
</ItemsPanelTemplate>
<ItemsControl.ItemsPanel>
</ItemsControl>