簡體   English   中英

WinRT-是否渲染了項目?

[英]WinRT - Is item rendered?

是否可以檢查屏幕上是否已經渲染了項目(因此對用戶可見)? 我正在嘗試使用自動“圖像交換動畫”創建圖像控件,但是當頁面上有數百個圖像時(例如在GridView中),性能會很糟糕。 我想知道哪些控件對用戶可見,所以我只為它們運行動畫。

您可以通過獲取UIElement.TransformToVisual()來檢查項目的位置,然后使用它來獲取項目相對於GridView ScrollViewer的剪貼畫框的坐標,但是如果您對其進行檢查,其性能可能不會很好在每個ScrollViewer視圖更改事件上,並且可以使用一些優化,如果您的GridView支持虛擬化,這也將很困難,如果您希望能夠滾動數百個圖像,則需要進行優化。

如果您不想花費數天或數周的時間來解決問題,Oleh的建議就是最好的選擇。 GridView如果您使用的是虛擬化面板,其將被虛擬化ItemsPanel屬性,例如WrapGrid (8.0的Windows默認)或ItemsWrapGrid (Windows 8.1中默認)。 需要注意的是VariableSizedWrapGrid 沒有被虛擬化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM