如何在Windows Phone 8.1 / Windows 10上创建自定义的VirtualizingPanel?

6
我正在尝试在Windows 10和Windows Phone 8.1 (应用链接) 中完成以下操作:
我有一个名为FluidPanel的自定义类,它扩展了Panel并覆盖了MeasureOverride和ArrangeOverride方法。 目标是创建Google Keep外观。好的,它工作得很好。 但是,因为我使用了一个基本的Panel作为ItemsPanelTemplate,所以项目重新排序不起作用。此外,转换不起作用,也没有虚拟化。
因此,我想知道如何创建一个自定义面板,可以像GridView的ItemsWrapGrid一样重新排序项目并进行虚拟化
我尝试扩展VirtualizingPanel类,但它仍然显示这个错误,看起来像是一个bug:

'VirtualizingPanel'不包含接受0个参数的构造函数

希望有人能给出一些方向。
1个回答

3
你无法从C#中继承“VirtualizingPanel”的原因是它是Windows运行时类,且Windows元数据(windows.winmd文件)未公开构造函数。虚拟化UI只是一个概念,可能会有点复杂,但可以从头开始实现。我认为,在WPF中实现虚拟面板的博客系列将是一个很好的起点。
第1部分:http://blogs.msdn.com/b/dancre/archive/2006/02/06/526310.aspx 第2部分:http://blogs.msdn.com/b/dancre/archive/2006/02/13/531550.aspx 第三部分:http://blogs.msdn.com/b/dancre/archive/2006/02/14/532333.aspx 附注:该博客是关于WPF的,但基本思想是相同的。

谢谢您澄清了这个问题!但我不应该把重点放在虚拟化部分,重新排序和转换才是我面临的真正问题。我将删除这个问题。请查看这个链接:http://stackoverflow.com/questions/31623799/custom-panel-with-reorder-and-animations-transitions - Bruno Lemos
1
@Jeffrey,我知道这是一个旧的帖子,但我真的需要创建一个自定义虚拟化面板。你提到的VirtualizingTilePanel是从VirtualizingPanel派生而来,并实现了IScrollInfo。那么在UWP或Windows商店应用程序中,如果无法扩展VirtualizingPanel,我应该从哪个类派生呢?我是否也需要使用C++将其创建为Windows Runtime Class?谢谢! - SimonFisher

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接