Re: [WPF] использование Grid, UniormGrid больших размеров
От: Igor Stepin Россия  
Дата: 06.11.07 20:59
Оценка:
Здравствуйте, s8k, Вы писали:
s8k>1-ый и самый главный. Если читать файл килобайт этак 20, то создается 20 тысяч объектов Rectangle. Этот процесс занимает на моем (не самом слабом компьютере) до нескольких минут. Приложение съедает примерно 350 мб оперативы. Но как только все объекты созданы, приложение отрисовывается и работает без единого тормоза, даже при скролле и зуме таблицы.
s8k>Учитывая, что у rectangle'ов может быть всего 16 цветов фона. Я думал, используя только 16 объектов, заполнить Grid, но насколько я понял это невозможно
s8k>Подскажите пожалуйста, как можно оптимизировать приложение, естественно не отказываясь от WPF?

s8k>2-ой. затрудняюсь придумать, как отображать "1" или "0" в моих ячейках-rectangle'ах?


Border & Background умеет Border, у него же есть свойство Child. Туда можно поместить любой UI объект или строку.
Для простоты восприятия ИМХО единицу лучше отображать как +, а 0 никак не отображать (+еще чуть-чуть скорость можно повысить на этом).

Я так понял, что все 20000 объектов видно на экране (или существенную часть). В этом случае VirtualizingPanel не поможет. Есть старый добрый метод: отнаследоваться от UIElement/FrameworkElement/Control, перекрыть OnRender и всё ручками. Правда, непонятно тогда причём здесь WPF.

Второй вариант: использовать WPF Perfomance Suite отсюда: http://wpf.netfx3.com/files/folders/developer/default.aspx . Где проявится проблема там и оптимизировать. Хотя, скорее всего придётся писать свою панель и свой контрол, но, может быть, пронесёт .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.