簡體   English   中英

Telerik RadTreeListView性能不佳

[英]Telerik RadTreeListView poor performance

我在Telerik WPF分層網格視圖中遇到了一些性能問題,並正在考慮使用替代的第三方控件。

看看這個簡單的場景(zip項目),它是一個RadTreeListView,它通過組合框綁定到一個實體,以擴展到每個級別。 表演很糟糕。 我正在使用輕量級Metro(windows8)樣式,並且按如下方式(並按照建議)覆蓋了CreateCellElement。

public override FrameworkElement CreateCellElement(GridViewCell cell, object dataItem)
{
    if (cell.Content != null && cell.DataContext == dataItem)
    {
        return (FrameworkElement)cell.Content;
    }

    return base.CreateCellElement(cell, dataItem);
}

將其打開,拖動以填滿屏幕高度,將所有項目擴展到幾個級別深(使用組合鍵,左上方)並滾動瀏覽-這非常麻煩。 在我的工作版本中,類似的情況是完全無法使用的,並且當前我被迫遍歷所有擴展的行並調度“ ExpandHierarchyItems”調用,這些調用將UI綁定了很長時間,只是為了防止可怕的滾動體驗(極慢的/大規模的UI)鎖定,節點未擴展,無子級,錯誤級別的行)。 Telerik WPF的最新版本,Windows 7 x64-在i7s上較慢,在i5上甚至更慢。

我現在正在將此簡單方案與替代方案(devexpress等)進行比較...

有沒有人對提高性能有任何建議? 或者,我將采用一個明確的“ Telerik無法提供比這更好的東西,並且(還有其他東西)”作為答案。

來自http://www.telerik.com/community/forums/wpf/treelist/radtreelistview-poor-performance.aspx的交叉發布

我剛剛播放了您的演示幾分鍾。

嘗試編輯RadTreeListView模板時發生錯誤“鍵不能為空”。 ControlTemplate已添加到資源中,但是不能應用於控件。 所以我無法播放模板。

就性能而言,據我所知,我們可以考慮以下方面:

1) 布局

查看RadTreeListView的可視樹(可以使用WPF Tree Visualizer ),它從樹根到樹的葉子遞歸包含幾個Grid。

根據MSDN, 布局系統

最簡單的說,布局是一種遞歸系統,可導致元素的大小,位置和繪制。 更具體地說,布局描述了測量和安排Panel元素的Children集合的成員的過程。 布局是一個密集的過程。 Children集合越大,必須進行的計算數量就越大。 也可以根據擁有該集合的Panel元素定義的布局行為來引入復雜性。

相對簡單的面板(例如Canvas)比更復雜的面板(例如Grid)具有明顯更好的性能。

子UIElement每次更改其位置時,都有可能觸發布局系統進行新的傳遞。 因此,重要的是要了解可以調用布局系統的事件,因為不必要的調用會導致較差的應用程序性能。 下面描述了調用布局系統時發生的過程。

因此,樹越深,計算量就越大。

您應該嘗試避免同時進行大量的布局更改,並嘗試在模板(DataTemplate和ControlTemplate)中使用更簡單的面板

並且此鏈接提供了更多詳細信息。 在渲染時間和性能方面,Panels最有效的順序是什么?

2) 渲染

這與WPF渲染實現有關。 BitmapEffect是一個示例。

WPF位圖效果以軟件模式呈現。 任何應用效果的對象也將在軟件中呈現。 在較大的視覺效果上使用位圖效果或對位圖效果進行動畫處理時,性能降低最大。 這並不是說您根本不應該以這種方式使用位圖效果,而是應該謹慎行事並進行徹底測試,以確保您的用戶獲得了期望的體驗。

查看本文-您可以優化代碼,以使Telerik的組件與默認的WPF組件一樣快。

http://jiripik.me/2013/11/14/rendering-of-telerik-wpf-radgridview-and-wpf-datagrid-at-warp-speed/

我只是使用WPF TreeListView。 Telerik至少不能足夠快地為我們工作。

http://www.wpftreelistview.com

嘗試了其他兩個網格,但使用了更多的裸露骨骼,因此實現起來更快。

暫無
暫無

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

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