WPF ItemsControls, очень высокая загрузка ЦП при прокрутке - PullRequest
3 голосов
/ 02 ноября 2010

Мне любопытно, сталкивался ли кто-нибудь с подобным опытом с WPF ItemsControls (ListView, ListBox и т. Д.), И, надеюсь, несколько советов для меня.:)

Обычный ListBox, скажем ... 300-500 элементов (с привязкой данных или без нее, без различий), с включенной виртуализацией, когда я нажимаю и перетаскиваю полосу прокрутки «большой палец» вверх ивниз (прокрутка вверх / вниз), я заметил, что загрузка моего процессора (3,4 ГГц) выросла примерно до 90%.И в то время как все достаточно отзывчиво, он чувствует себя неуверенно.Я заметил это с большинством ItemsControls, и мне интересно, если это мой компьютер, или такое использование процессора является оправданным компромиссом для богатого интерфейса?Это только ItemsControls, которые имеют такое поведение;Я не обнаружил, что ScrollViewer сам по себе медленный.

Установка ScrollViewer.CanContentScroll в false (что делает виртуализацию бессмысленной) значительно ускорила прокрутку.Тем не менее, выбор предметов стал очень медленным, чего я не ожидал.Изменение размера / разметки также требует значительных усилий, но ожидалось, что было .

По сравнению со списком win32, который использует <3% ЦП при прокрутке того же количества элементов, ясклонен задавать эти вопросы (хотя я пытаюсь уйти от win32:). </p>

Это только потому, что я использую XP (sp3, с .NET 4.0)?

это моя видеокарта (NVidia GeForce 7300 GS pcie)?

Или, что я испытываю нормально?

У меня сейчас нет никаких средств для тестирования на другом (быстрее)) машина, поэтому я опираюсь на опыт других, у кого есть идеи.Мне кажется, что WPF был сделан совместимым только с XP и нацелен на Vista и выше.

Возможно, есть программа WPF, которую я мог бы запустить в качестве эталона, кроме VS / Blend, чтобы почувствоватьобщая производительность приложения, использующего WPF?

Спасибо за ваше время.:)

...