2015-07-20 107 views
5

我试图做到这一点在Windows 10和Windows Phone 8.1 (app link)如何在Windows Phone 8.1/Windows 10上创建自定义的VirtualizingPanel?

我有一个名为FluidPanel一个自定义的类,它扩展面板,覆盖方法的MeasureOverride和ArrangeOverride。 目标是创建Google Keep appearence。好的,它工作正常。

但是,因为我正在使用基本面板作为ItemsPanelTemplate,所以重新排序项目不起作用。此外,转换不起作用,并且不会虚拟化。

所以,我想知道如何创建一个自定义面板,重新排序项目和虚拟化就像GridView的ItemsWrapGrid

我试图扩展的类VirtualizingPanel,但它让我看这个错误,看起来像一个错误:

“VirtualizingPanel”不包含一个构造函数0 参数

希望有人可以提供一些方向。

回答

2

您不能从C#中的“VirtualizingPanel”继承,因为它是Windows运行时类,并且没有Windows元数据公开的构造函数(windows.winmd文件)。 用户界面虚拟化只是一个概念,它会稍微复杂一点,但可以从头开始实施。 我认为在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

部分#3:http://blogs.msdn.com/b/dancre/archive/2006/02/14/532333.aspx

P.S:博客是有关WPF,但基本思想是一致的。

+0

感谢您澄清!但我不应该专注于虚拟化部分,重新​​排序和过渡是我所面临的真正问题。我要删除这个问题。请看这一个:http://stackoverflow.com/questions/31623799/custom-panel-with-reorder-and-animations-transitions –

+1

@Jeffrey我知道它的一个旧线程,但我真的需要创建一个自定义虚拟化面板。您提到的文章中的VirtualizingTilePanel来自VirtualizingPanel,并实现了IScrollInfo。那么,如果VirtualizingPanel无法扩展,那么应该从UWP或Windows应用商店应用派生哪个类?我是否也必须使用C++将它创建为Windows Runtime Class?谢谢! – SimonFisher