Re[7]: [WPF] Charts
От: alesterre Удмуртия  
Дата: 16.02.12 10:27
Оценка:
Здравствуйте, Dmitry_Sharp2008, Вы писали:

D_S>P.S. Что там за "артефакты" лезут, да еще и при полноэкранном размере- вообще не представляю. Может драйверы видеокарты "воду мутят"? У меня на Radeon HD 2600Pro под Windows 7 были артефакты вообще на всех WPF приложениях.


Чтобы было лучше видно, сделал такой бэкграунг гриду, в который складываю фигуры:

<Grid.Background>
    <LinearGradientBrush StartPoint="0, 0.5" EndPoint="1,0.5">
        <GradientStopCollection>
            <GradientStop Color="#EE1111FF" Offset="0"></GradientStop>
            <GradientStop Color="#111111FF" Offset="0.01"></GradientStop>
            <GradientStop Color="#111111FF" Offset="0.99"></GradientStop>
            <GradientStop Color="#EE1111FF" Offset="1"></GradientStop>
        </GradientStopCollection>
    </LinearGradientBrush>
</Grid.Background>


Скриншот, когда все хорошо (фон грида рисуется как нужно, в виде двух синих полос по краям):
http://i.imgur.com/9UPWo.png

Но если "поездить" мышкой туда-сюда, происходит следующее:
http://i.imgur.com/wBCuW.png

Кроме явных проблем с фоном, иногда в некоторых местах рисуются точки, которых не должно быть видно, причем иногда они рисуются вытянутыми, сжатыми или обрезанными.

Проблему удалось победить так (возможно, не обязательно вызывать всё, пока для верности оставил все три):

MainGrid.InvalidateArrange();
MainGrid.InvalidateMeasure();
MainGrid.InvalidateVisual();


В итоге, мой подход пока меня устраивает, посмотрим, как будет дальше, когда будет больше объектов (отрезки между точками, надписи, линии сетки). Пока что перемещение 2 тысяч точек — не проблема даже для Селерона 2.2 ГГц и встроенного видеочипа. Абсолютно плавный panning; zoom на мелких масштабах подтормаживает, но уже гораздо меньше, чем в исходной реализации, когда положения всех-всех эллипсов менялись через OnPropertyChanged.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.