【发布时间】:2017-04-04 10:07:41
【问题描述】:
我有带有图标的WrapPanel。
我想逐行创建它(每行 5 个项目)。
所以,我的代码:
<WrapPanel Grid.Row="3"
Grid.RowSpan="2"
Grid.Column="4"
x:Name="wpIcons">
</WrapPanel>
foreach(var ic in obj.Icons)
{
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.StreamSource = new MemoryStream(ic.image);
bi.EndInit();
Image im = new Image();
im.Source = bi;
wpIcons.Children.Add(im);
}
所以,它可以工作,但不能逐行。
如何逐行制作图标?
【问题讨论】:
-
为什么不使用 Stackpanel 呢?你应该看看 MVVM 模式。在后面的代码中添加项目是远远不够的。
-
一行一行是什么意思?是纵向还是横向?
-
“每行 5 个项目”要求的范围从简单(限制
WrapPanel的宽度,将水平堆栈面板作为项目的垂直堆栈面板或只是一个纯UniformGrid?)到 hard(创建自己的面板),具体取决于您想要实现的目标。在给定的代码中,您可以尝试限制im.Width,以便只有5图像适合,然后6th将被包装,但是如果调整窗口大小等会发生什么?