powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Бегущая строка в WPF
14 сообщений из 14, страница 1 из 1
Бегущая строка в WPF
    #36223468
Varcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть свой компонент - бегущая строка, реализованная с помощью объектов анимации. Как только программа начинает производить интенсивные вычисления (в частности, при присвоении ItemsControls.ItemsSource = <какой-то список>), бегущая строка замирает, потом опять продолжает движение. Получается очень некрасиво - бегущая строка во время своего движения все время дергается. Есть ли варианты решения данной проблемы?
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36223527
Alex Tyutyunik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вычисления бегают в отдельном потоке ?
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36223535
Varcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex TyutyunikА вычисления бегают в отдельном потоке ?
Нет. Контрол ItemsControl находится в том же окне, что и бегущая строка. В том-то и проблема.
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36223603
Alex Tyutyunik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема не в этом.. проблема в том, что они все варятся в одном потоке
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36223641
Varcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex TyutyunikПроблема не в этом.. проблема в том, что они все варятся в одном потоке
Угу. Собственно, и я о том же. Окно, вместе со всеми своими компонентами создается в едином потоке. А вот как сделать, чтобы какие-то компоненты создавались в другом потоке - вопрос.
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36223763
Фотография Compositum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VarcomAlex TyutyunikПроблема не в этом.. проблема в том, что они все варятся в одном потоке
Угу. Собственно, и я о том же. Окно, вместе со всеми своими компонентами создается в едином потоке. А вот как сделать, чтобы какие-то компоненты создавались в другом потоке - вопрос.
WPF-приложение, равно как и приложение WinForms являются однопоточными (вспомните атрибут [STAThread]).
Чтобы получить доступ к элементам основного потока в WPF применяется Dispatcher. Через него это всё и делается.
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36224607
Varcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompositumЧтобы получить доступ к элементам основного потока в WPF применяется Dispatcher. Через него это всё и делается.
Насколько я понял, Dispatcher позволяет передавать управление из вторичных потоков в основной UI-поток.
Но у меня стоит противоположная задача. Нужно, чтобы два компонента в окне могли обновляться параллельно. Чтобы, пока ресурсоемкий компонент ItemsControl пересоздает свое содержимое, бегущая строка продожала бежать по экрану, не замирала. Вроде как, они должны функционировать и обновляться в разных потоках. В WinApi для этого, я бы создал оконный компонент "бегущая строка" в отдельном потоке, и положил бы его на главное окно, работающее в основном потоке. Тогда каждый компонент работал бы в своем потоке, не мешая друг другу. Как проделать то же самое в WPF, ума не приложу.
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36224725
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varcomресурсоемкий компонент ItemsControl пересоздает свое содержимое
Гыы... ресурсоемкий ItemsControl ?? Вы грузите с клиента 1000000 строк данных одновременно?
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36224754
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varcomкаждый компонент работал бы в своем потоке, не мешая друг другу. Как проделать то же самое в WPF, ума не приложу.
А как вы уже проделываете - короткий пример приведите.
И да, ItemsControl на самом деле не отображает ни каких данных, отображает их панель, указанная в ItemsControl.ItemsPanel
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36224870
Varcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman S. GolubinГыы... ресурсоемкий ItemsControl ?? Вы грузите с клиента 1000000 строк данных одновременно?
На самом деле там 3 уровня вложенных ItemsControl-ов с триггерами и анимацией. Но сути дела это не меняет. При присваивании списка данных данному контролу, заметно дергается бегущая строка.

Roman S. GolubinVarcomкаждый компонент работал бы в своем потоке, не мешая друг другу. Как проделать то же самое в WPF, ума не приложу.
А как вы уже проделываете - короткий пример приведите.
Опишу словами. Создается дополнительный поток. В методе этого потока создается контрол (на Делфи - обычный WinControl, на WinApi - CreateWindow), в качестве хэндла родительского окна контрола указывается хэндл окна в главном потоке. Завершается метод потока циклом обработки виндовских сообщений.
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36224885
я фигю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с этих придурков. один комбобкс забандить не может, другой с битами не может разобраться третий вообще нирена ни читал, забавный тут , у вас, зверинец.

ms-help://MS.MSDNQTR.v90.en/wpf_conceptual/html/02d8fd00-8d7c-4604-874c-58e40786770b.htm
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36225474
Varcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я фигюс этих придурков. один комбобкс забандить не может, другой с битами не может разобраться третий вообще нирена ни читал, забавный тут , у вас, зверинец.

ms-help://MS.MSDNQTR.v90.en/wpf_conceptual/html/02d8fd00-8d7c-4604-874c-58e40786770b.htm
Господин офигевший выскочка не подскажет, как на основе вышеуказанной ссылки создать в окне контрол, который будет обрабатываться потоком, отличным от потока окна?
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36226314
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте для начала в ItemsControl.ItemsPanel прописать что-нибудь типа

Код: plaintext
1.
2.
3.
4.
5.
6.
<ItemsControl>
	<ItemsControl.ItemsPanel>
		<ItemsPanelTemplate>
			<VirtualizingStackPanel IsItemsHost="True"/>
		</ItemsPanelTemplate>
	</ItemsControl.ItemsPanel>
</ItemsControl>

Может поможет
...
Рейтинг: 0 / 0
Бегущая строка в WPF
    #36226322
Фотография Roman S. Golubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VarcomГосподин офигевший выскочка не подскажет, как на основе вышеуказанной ссылки создать в окне контрол, который будет обрабатываться потоком, отличным от потока окна?
Он прав. В контекста STA машина состояний, управляющая окнами всего одна. И второй не дождетесь. Хотите асинхронности - создавайте отдельный поток в бэкграунде ThreadPool.QueueUserWorkItem и далее по списку
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Бегущая строка в WPF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]