1

如何VerticalOffset更改時,我正在製作一個WP7應用程序,它具有UserControls的列表框。每個UserControl都有一個ItemsControl和Button(用於獲取更多結果)。點擊按鈕ItemsControl項目將增加5或10.當可滾動高度變化,同時列表裏面列表

現在單擊除第一個或最後一個用戶控件的任何一個的GetMore按鈕,將會增加Scrollable高度(總高度列表框),但ListBox的VerticalOffset(頂部滾動條的位置)保持不變。現在我面臨的問題是垂直偏移不是絕對的,而是相對於可滾動高度。因此,到目前爲止,正在觀看的內容將根據ScollableHeight的新值進行更改。

我想知道他們之間的關係,以便我可以做一些數學和設置VerticalOffset值。

我已經在VerticalOffset和ScrollableHeight上添加了一些依賴項屬性,通過它我可以在任何這些事件發生更改時獲取事件。嘗試使用ScrollIntoView重新調整垂直偏移

任何建議或更正都非常感謝。

回答

0

我無法找到計算。但是可以做的是listbox可以被一個scrollviewer替換,它裏面有itemsControl。但這樣做的缺點是虛擬化被禁用,因此需要檢查這一點。

但是,總體而言,這將給在Listbox中使用這樣的UserControl帶來不好的體驗。所以使用WP7工具箱中給出的模板列表框是一個選項,但它會掛起一點,因爲ListBox並未針對多模板虛擬化進行優化。所以我開始展示寫作列表框項目模板,它包含了從條件啓用的所有可能的佈局。