2015-07-20 104 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