5

我正在尝试在 Windows 10 和 Windows Phone 8.1 (应用链接)中执行此操作:

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

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

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

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

“VirtualizingPanel”不包含采用 0 个参数的构造函数

希望有人可以给一些指导。

4

1 回答 1

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

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

于 2015-07-20T11:03:41.833 回答