在运行时添加 UIEliments,不重叠

Posted

技术标签:

【中文标题】在运行时添加 UIEliments,不重叠【英文标题】:Adding UIEliments at runtime, without overlapping 【发布时间】:2018-07-15 11:54:32 【问题描述】:

我在运行时通过代码将未知数量的图像添加到画布中,但我怀疑它们彼此重叠,因此只有 1 个图像可见。

我正在使用 ghostscript 将多页 PDF 转换为 jpg 图像,并希望将它们添加到滚动查看器内垂直连续行中的画布中。

目前我只是通过 for 循环生成每个 jpg 并使用 canvas.children.add() 将其添加到画布

是否有一种通用方法可以确保添加到画布的元素不重叠?还是人们用来确保 children.add 将元素放置在正确位置的常用方法?

我正在考虑在我的 for 循环中,我需要查看画布上还有什么,并将高度加在一起并将我的新图像放置在正确的位置,但我不确定这是如何完成的。有没有人能把我引向正确的方向?

【问题讨论】:

抱歉,我试图在我的问题中添加代码,但我无法让“在此处添加代码”来识别我的代码,所以一半在代码框中,一半不在,看起来很不整洁 【参考方案1】:

您可以使用StackPanel 代替Canvas 并在其中添加图像。然后StackPanel 会将图像彼此相邻放置(或一个在另一个之下,取决于它的Orientation)。

【讨论】:

完美!谢谢你。将类型更改为 stackpanel 后,我有一些问题需要解决,但我又在路上了。谢谢 ChrFin。 :)

以上是关于在运行时添加 UIEliments,不重叠的主要内容,如果未能解决你的问题,请参考以下文章

阻止WPF控件在MouseMove事件上重叠

由 UITableView 制成的下拉按钮不重叠按钮

Kivy Label 添加文本而不重叠

UISearchBar 在活动时与 UITableView 内容重叠

在运行时重用具有动态布局内容的单元格

当浏览器窗口重叠时,并行运行Selenium测试失败