Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Windows Phone 8.1/Windows 10上创建自定义虚拟化面板?_C#_Xaml_Windows Phone_Windows 10_Windows 10 Mobile - Fatal编程技术网

C# 如何在Windows Phone 8.1/Windows 10上创建自定义虚拟化面板?

C# 如何在Windows Phone 8.1/Windows 10上创建自定义虚拟化面板?,c#,xaml,windows-phone,windows-10,windows-10-mobile,C#,Xaml,Windows Phone,Windows 10,Windows 10 Mobile,我正在Windows 10和Windows Phone 8.1中尝试这样做: 我有一个名为FluidPanel的自定义类,它扩展了Panel并重写了MeasureOverride和ArrangeOverride方法目标是创建一个。好的,工作正常。 但是,由于我使用的是基本面板作为ItemsPanelTemplate,因此项目重新排序不起作用。而且,传输不起作用,也不能虚拟化 因此,我想知道如何创建一个自定义面板,它可以像GridView的ItemsRapGrid一样对项目进行重新排序和虚拟化 我

我正在Windows 10和Windows Phone 8.1中尝试这样做:

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

但是,由于我使用的是基本面板作为ItemsPanelTemplate,因此项目重新排序不起作用。而且,传输不起作用,也不能虚拟化

因此,我想知道如何创建一个自定义面板,它可以像GridView的ItemsRapGrid一样对项目进行重新排序和虚拟化

我试图扩展VirtualzingPanel类,但它不断向我显示这个错误,看起来像一个bug:

“VirtualzingPanel”不包含接受0的构造函数 论据


希望有人能给你一些指导。

你不能继承C#中的“VirtualzingPanel”,因为它是一个Windows运行时类,Windows元数据(Windows.winmd文件)没有公开构造函数。 UI虚拟化只是一个概念,有点复杂,但可以从头开始实现。 我认为在WPF中实现虚拟化面板的博客系列将是一个良好的开端

第1部分:

第2部分:

第三部分:


附言:这个博客是关于WPF的,但基本思想是一样的。

谢谢你的澄清!但我不应该把重点放在虚拟化部分,重新排序和转换才是我面临的真正问题。我要删除这个问题。请看这个:@Jeffrey我知道这是一个旧线程,但我真的需要创建一个自定义虚拟化面板。您提到的文章中的VirtualzingTilePanel源自VirtualzingPanel,并实现了IScrollInfo。那么,如果VirtualzingPanel无法扩展,我应该从UWP或Windows应用商店应用程序中派生哪个类?我是否也需要使用C++来创建它作为Windows运行时类?谢谢!