Strange Choppy WPF Анимация - PullRequest
       6

Strange Choppy WPF Анимация

2 голосов
/ 24 ноября 2008

Я делаю приложение, которое прокручивает информацию на рабочем столе. Окно прозрачное. Я начинаю с простого, пытаясь найти минимальное использование процессора для анимации, и я начинаю с простого TextBlock.

На моей машине для разработки я получаю очень плавную анимацию по экрану, устанавливая свойство Canvas.Left с помощью DoubleAnimation. Тем не менее, на другом компьютере с Vista я получаю примерно 1-секундную задержку каждые 6-7 секунд. На машине с XP это снова довольно гладко. Я пробовал на 3 других машинах и его 50% хорошо и плохо. У меня 3.5 SP1 установлен на всех машинах.

Использование ЦП в системах никогда не превышает 10%. Я вижу, что я не делаю никакого программного рендеринга. Видеокарта на моем настольном компьютере представляет собой серию nVidia Geforce 7xxx, и одна из изменчивых машин использовала карту nVidia Geforce 88xx. Все они используют один и тот же драйвер и самый текущий. Разрешение экрана обычно составляет 1920x1080, за исключением моей машины Dev, которая намного больше (2560x1600)

ОДНАКО - если я использую Perforator, чтобы ОТКЛЮЧИТЬ поддержку грязной области - это гладко на всех машинах, но ЦП теперь на 30%

Я потерян. Измельченность почти как по маслу. На машинах, на которых возникли проблемы, больше ничего не происходит, все протестированные машины были Core 2 Duos, много оперативной памяти, последние драйверы, последние пакеты обновления, я просто не знаю, что еще делать. Я ожидал бы просто более высокую загрузку процессора, а не отставание.

Ответы [ 3 ]

3 голосов
/ 24 ноября 2008

Если вы используете свойство AllowsTransparency, у вас будут проблемы с производительностью и совместимостью.

Техническое объяснение здесь:

http://blogs.msdn.com/dwayneneed/archive/2008/09/08/transparent-windows-in-wpf.aspx

из моего личного (и болезненного) опыта, некоторые драйверы дисплея разрушат вашу программу, а другие заставят Windows работать беспорядочно, если у вас долгое время есть прозрачное окно WPF на экране, я рекомендую вам переписать графический интерфейс не использовать прозрачность.

0 голосов
/ 08 декабря 2008

Хорошо, я только что решил проблему после публикации своих предыдущих заявлений. Оказывается, я еще не установил свои графические драйверы на этот компьютер, и после этого он начал работать очень плавно. Возможно, раньше использовался программный рендеринг графики или что-то в этом роде. Поэтому я рекомендую обновить графические драйверы до последней доступной версии, чтобы проверить, поможет ли это решить проблему. Оригинальный постер, похоже, имеет другую проблему, так как кажется, что он правильно установил свои драйверы FX. Я не уверен, есть ли какие-либо проблемы с картами NVIDIA 8800 с DirectX, хотя.

Спасибо, Eric

0 голосов
/ 08 декабря 2008

У меня очень похожая проблема с программой, которую я недавно создал с использованием WPF. Он отлично работает на машине сборки, которую я использую, на которой работает Windows Server 2003, но когда я переключаю его на машину с XP, имеющую более чем достаточно ресурсов для запуска программы, она становится крайне нестабильной. В основном это получает один кадр в секунду. Каждый тик анимация будет двигаться вперед. Я слышал об этой проблеме, когда она исчезает после того, как анимация завершает один цикл (через анимацию), но для меня она остается такой навсегда.

И я не использую свойство AllowsTransparency, поэтому, если у кого-то есть какие-либо идеи, я буду очень признателен.

(машина, на которой происходит сбой, также является Core 2 Duo)

Спасибо, Eric

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...