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

时间:2015-07-20 01:24:59

标签: c# xaml windows-phone windows-10 windows-10-mobile

我正在尝试在Windows 10和Windows Phone 8.1 (app link)中执行此操作:

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

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

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

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

  

'VirtualizingPanel'不包含带0的构造函数   参数

希望有人可以给出一些指示。

1 个答案:

答案 0 :(得分:2)

您不能从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

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

P.S:博客是关于WPF的,但基本思路是一样的。