我有一个 scatterview 控件,我从 URL 加载相当大的图像。图像大小不同,有时图像太大而无法一张抓,我必须下载两半作为单独的图像。我试图将这两部分结合起来,使它们看起来和表现得像一个整体。我已经杀死了两天并接近了它,但并不完美。我尝试过的事情:将两半都添加到 StackPanel,然后用 ScatterViewItem 包装。出于某种原因,如果面板比高度宽得多,SVI 不会正确调整其尺寸。我尝试了一些方法,包括 MSDN 上建议的让 SVI 调整其内容的高度/宽度的样式。在大多数情况下效果很好,但如果图像又长又窄,它的一部分就会被剪掉*(见下文)。
将两半添加到画布中。似乎无法通过操作正确调整大小。
将两半添加到网格中。无法让两半形成一个图像。奇怪的是,整个网格被 SVI 正确显示,包括长图像。然而,这两个部分要么在每个顶部(没有水平对齐),要么相距很远(执行列 def 并将它们设置为 col 0 和 1),或者几乎完美但它们之间的间隙很小(将一个设置为左对齐,另一个右对齐)。
*到目前为止,StackPanel 似乎是最有前途的。我可以通过手动设置 SVI MinWidth 来显示整个内容,但是控件的操作命中区域大于图像本身。我一直在尝试使用图像的 SizeChanged 事件,尝试在图像实际加载时动态调整 SVI midwith,使其等于它们的组合渲染宽度,但现在它开始变得比科学更萨满教. 我正要在这件事上扔随机代码,只是希望结果会有一些用处或洞察力。我认为,部分问题在于,在将图像添加到容器中并将其包装到 SVI 中,并将 svi 添加到 scatterview 本身之后,图像源位图可能需要 5 秒才能真正下载。它告诉我,在位图准备好并渲染图像之前,每个图像的高度为 NaN,但实际高度为 87。这一切如何影响堆栈面板和 SVI 的大小,我真的不知道。
所以,也许有人有一些见解或建议可以尝试,而我一直在修补并希望从中有所收获。