Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Хостинг WPF Controla в WinForm / 22 сообщений из 22, страница 1 из 1
12.03.2018, 21:08
    #39613782
2222211111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
Всем привет. Возникла необходимость использования контрола(лов) WPF в разработке на WinForms. Я новичек при работе c WPF. Почитал теорию и использовал ElementHost с WPF контролом.
Все как бы заработало, но ... данные в контролы WPF нужно загружать в фоновом потоке + ProgressBar на WinForm форме.
При работе с WinForms ранее использовал для этого BackgroundWorker, где в методе DoWork вызывал Invoke(Delegate method) и работал напрямую с контролами.
При работе с WPF это не срабатывает. Подскажите пожалуйста, как правильно загружать данные(отображать) ???
...
Рейтинг: 0 / 0
12.03.2018, 22:58
    #39613822
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111,
А что и в чем отображаете?
Зачем тысячи объектов отображать?
...
Рейтинг: 0 / 0
13.03.2018, 00:01
    #39613841
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111данные в контролы WPF нужно загружатьне нужно данные загружать в контролы, забудьте эту пагубную привычку. Данные нужно загружать в модель. А для отображения модели использовать какой-нибудь контейнер с виртуализацией, чтобы не тормозило.
...
Рейтинг: 0 / 0
13.03.2018, 00:18
    #39613844
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
Shocker.Pro,
+1
...
Рейтинг: 0 / 0
13.03.2018, 00:38
    #39613847
2222211111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
Это не стартап. Просто вынужденное решение, тк сказать по быстрому. Нужно отобразить только несколько значений, а вываливается ошибка с потоками The calling thread must be STA, because many UI components require this.
...
Рейтинг: 0 / 0
13.03.2018, 07:14
    #39613873
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111Это не стартап. Просто вынужденное решение,
По быстрому намешать вместе технологии? В винформс впихнуть окно на wpf?
"Не стартап" это когда всё работало лет 5 и вдруг сломалось.
...
Рейтинг: 0 / 0
13.03.2018, 09:06
    #39613907
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111вынужденное решениечем вынужденное? ну и делай на WinForms тогда
...
Рейтинг: 0 / 0
13.03.2018, 10:37
    #39613961
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
Был в такой же ситуации, впихивал сложную сетку в винформс.

2222211111 При работе с WPF это не срабатывает.Срабатывает, но это не нужно.

авторПодскажите пожалуйста, как правильно загружать данные(отображать) ???
Код: c#
1.
2.
ObservableCollection<T> col;
WPFControl1.DataContext = col;

где T - класс со свойствами для хранения этих самых "нескольких значений", реализовывающий INotifyPropertyChanged.

После того как коллекция инициализирована и присвоена DataContext'у, добавление, удаление или изменение данных сводится к работе с этой коллекцией. У визуальных элементов в XAML нужно соответственно прописать названия полей из T, к которым будут биндиться эти элементы.
...
Рейтинг: 0 / 0
13.03.2018, 11:55
    #39614027
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
могут возникать баги с фокусом между родительском окном WinForms и содержимым WPF.
Между TextBox'ам. Это самое неприятное, из того, что я помню. Есть и другие проблемы. Не думайте, что всё пройдет гладко и как по маслу.
...
Рейтинг: 0 / 0
13.03.2018, 14:11
    #39614122
2222211111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
Спасибо всем за советы. Я наверно немного некорректно описал задачу. WPF контрол это контрол от Telerika. Я могу вызывать их методы добавления типа Control.Add(). Мне нужно, что бы это было в потоке BackgroundWorker + ProgressBar на WinForm форме.
...
Рейтинг: 0 / 0
13.03.2018, 15:15
    #39614165
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111WPF контрол это контрол от Telerika.имя?
...
Рейтинг: 0 / 0
13.03.2018, 15:20
    #39614167
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111Control.Add().в общем случае изменение визуальных компонентов, виджетов, окон делается в основном потоке.
...
Рейтинг: 0 / 0
13.03.2018, 18:00
    #39614290
2222211111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
контрол Telerik.Diagram. Нужно подгрузить Shape и Connection.
...
Рейтинг: 0 / 0
14.03.2018, 10:53
    #39614595
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111контрол Telerik.Diagram. Нужно подгрузить Shape и Connection.телерик куплен только wpf?
Вы не ответили на вопросы выше.
Зачем wpf и зачем фоновый поток.
...
Рейтинг: 0 / 0
14.03.2018, 11:51
    #39614641
2222211111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
Нет, есть и Telerik WinForms. Но в WinForms в diagram c 300 shape (и более) со связями уже начинаются тормоза, как при загрузке так и при смене Layoutа. А WPF diagram спокойно можно загрузить и 1000 shape и все работает. Поэтому решили хостить WPF control Diagram в WinForms форме.
...
Рейтинг: 0 / 0
14.03.2018, 12:20
    #39614662
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111,

вы не учитывайте 1 важный момент, при хостинге WPF в WinForms у WPF не работает аппаратная акселерация.
По этому результат может оказаться не такой впечатлающим как вы ожидаете
...
Рейтинг: 0 / 0
14.03.2018, 12:31
    #39614674
2222211111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
Ну я пробывал загружать до 5000 узлов и время более менее приемлемо. Проект начали до меня, он уже в эксплуатации у заказчиков. В UI используются контролы Telerik.WinForms и все работает. Заказчики захотели расширить функционал, и это оказалось единственным узким местом (нужен только один контрол).
...
Рейтинг: 0 / 0
14.03.2018, 12:46
    #39614687
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111,
Пять штук узлов это круто.
Т.е. работает на чистом wpf демке?
И вам из демки надо один контрол в винФорм?
Вам же говорят, что ваш тест был в wpf, а тут может не сработать.
ЗЫ.
Весь проект не хотите перевести?
...
Рейтинг: 0 / 0
14.03.2018, 13:17
    #39614711
2222211111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
Я не думаю что будет загружаться более 1000 узлов. Но всегда находится заказчик, который при приемке проекта задает некорректные условия, а потом начинает выкручивать руки. Хотелось бы конечно перевести проект, но это ресурсы - время + деньги. Никто на это не пойдет. Пока все всех устраивает. Если больше продуктивных предложений нет, то тема закрыта. Спасибо всем кто откликнулся.
...
Рейтинг: 0 / 0
14.03.2018, 13:23
    #39614717
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111,
Мы типа такого делали ещё в svg файле.
Он готовился правда в статике, в Corel и клики мышкой обработка через html вьювер.
Удачи!
...
Рейтинг: 0 / 0
15.03.2018, 13:49
    #39615363
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111Всем привет. Возникла необходимость использования контрола(лов) WPF в разработке на WinForms. Я новичек при работе c WPF. Почитал теорию и использовал ElementHost с WPF контролом.
Все как бы заработало, но ... данные в контролы WPF нужно загружать в фоновом потоке + ProgressBar на WinForm форме.
При работе с WinForms ранее использовал для этого BackgroundWorker, где в методе DoWork вызывал Invoke(Delegate method) и работал напрямую с контролами.
При работе с WPF это не срабатывает. Подскажите пожалуйста, как правильно загружать данные(отображать) ???

зы. весь мир в курсе, что правильно писать - "новичОк"
...
Рейтинг: 0 / 0
15.03.2018, 13:51
    #39615365
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хостинг WPF Controla в WinForm
2222211111Ну я пробывал загружать до 5000 узлов и время более менее приемлемо. Проект начали до меня, он уже в эксплуатации у заказчиков. В UI используются контролы Telerik.WinForms и все работает. Заказчики захотели расширить функционал, и это оказалось единственным узким местом (нужен только один контрол).

да, уж, это еще те "контролы"
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Хостинг WPF Controla в WinForm / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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