|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|
Как сделать контейнер для чата?26.04.2016, 13:16. Показов 4968. Ответов 35
Делаю чат, мне нужен контейнер в котором будут отображаться сообщения. Это должно выглядеть как в классических чатах, т.е.: поле по типу TextBox-а многострочное, но ReadOnly чтобы можно было копировать. Сообщения будут в формате "time username> message". Но самое главное и сложное надо чтобы ник (username) был кликабельным! Т.е. он во первых должен отображаться ну примерно как ссылка, такой подчеркнутый. При клике по нему можно открыть приват. (это уже я сам дореализую понятное дело, мне бы только сделать его кликабельным) А при клике правой кнопкой по нему контекстную менюшку открыть. Подскажите как это реализовать? Только не предлагать ListBox, я уже видел такие примеры в сети! Это не то совсем, потому что это уже вообще не смотрится как чат и копировать нельзя...
0
|
|
| 26.04.2016, 13:16 | |
|
Ответы с готовыми решениями:
35
приват "комната" для чата, как это сделать на сервере? Попытка сделать основу для чата Как сделать обновление чата? |
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|||
| 28.04.2016, 12:04 [ТС] | |||
![]() Добавлено через 3 минуты И кстати вот это то что вы предлагаете: какой контейнер??? У меня же список этих сообщений, а не одно...
0
|
|||
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
|
| 28.04.2016, 13:20 | |
|
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|||||||
| 28.04.2016, 15:20 [ТС] | |||||||
|
Добавлено через 49 секунд Не по теме: Кто бы мог подумать что на казалось бы таком многогранном WPF такая проблема написать обычный чат... Я уже начинаю думать что это вообще нереально. Добавлено через 1 час 57 минут novikov.ea, ну куда же вы ушли я без вас не справлюсь. ![]() Еще раз упорядочим вопросы, чтобы не терялись: 1. Идеальный вариант был бы с FlowDocument, но нужна идея как реализовать биндинг к нему и без таблиц. 2. Я сделал в принципе какой никакой шаблон ItemTemplate:
3. Мне нужен способ хотя бы просто вывести обычный список строк. Безо всяких дополнительных моделей. Просто объявить: List<string> MessageList { get; } и прибиндить. Чтобы выводилить они просто как в обычный многострочный TextBox, разделенные символом новой строки. Форматирование (время, ник, сообщение) все будет в строках делаться уже при добавлении в список. Основное отличие этого способа от остальных то что тут хотя бы можно было бы свободно выделять любую часть текста... Т.е. обычное текстовое поле. Поэтому всякие там ItemsControl-ы и ListBox-ы тут не подойдут.
0
|
|||||||
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
||
| 28.04.2016, 15:55 | ||
|
0
|
||
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
||
| 28.04.2016, 16:07 [ТС] | ||
|
0
|
||
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
|
| 28.04.2016, 16:50 | |
|
Не по теме: Смерть находится на конце иглы, игла в яйце, яйцо в утке, утка в зайце, заяц в ларце Paragraph в BlockCollection, BlockCollection во FlowDocument (свойство Blocks), FlowDocument в RichTextBox (свойство Document)
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
||||||
| 28.04.2016, 16:56 [ТС] | ||||||
|
novikov.ea, фух запутал в конец.
![]()
0
|
||||||
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
||
| 28.04.2016, 17:17 | ||
|
1) Класс ItemsContent будет наследоваться не от Section, а от ContentControl 2) ItemsContent должен создать и засунуть себе в Content RichTextBox 3) Для каждого элемента из ItemsSource ItemsContent будет создавать не TableRow, а Paragraph. И засовывать в него Span с тремя Run (которые должны парситься из DataTemplate). В Paragraph.DataContext нужно задать этот элемент из ItemsSource 4) Затем этот Paragraph нужно будет положить в RichTextBox.Document.Blocks
0
|
||
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|||
| 28.04.2016, 18:06 [ТС] | |||
|
Короче! Так можно гадать неделю. Может вы просто напишете кодом что вы имеете ввиду? Я не понимаю вас...
0
|
|||
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
|||||
| 28.04.2016, 18:31 | |||||
|
0
|
|||||
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
||||||
| 28.04.2016, 20:57 [ТС] | ||||||
|
novikov.ea, а можете помочь с написанием собственно этого контрола? А то я могу только разве что убрать все где ошибки падают:
<flowdoc:ItemsContent.ItemsPanel> и <flowdoc:ItemsContent.ItemTemplate>? Т.е. по примеру они лежали в ItemsContent, но теперь же в нем RichTextBox лежит...Добавлено через 1 час 59 минут novikov.ea, я правда не знаю как его написать! Я вообще не понимаю всю вот эту иерархию которую вы предложили, я в ней запутался... Мне бы главное чтоб заработало! Помогите пожалуйста написать этот контрол и покажите уже кодом xaml как именно вы говорите надо это все разместить!!!
0
|
||||||
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
|
| 29.04.2016, 00:33 | |
Сообщение было отмечено Dark Byte как решение
Решение
Вот вам готовое решение. Говнокод, дублирование кода и прочие мелочи отрефакторите сами.
2
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|
| 29.04.2016, 07:17 [ТС] | |
|
novikov.ea, спасибо работает!!! Скажите а можно только сделать не на базе FlowDocumentPageViewer, а на базе FlowDocumentScrollViewer? Никак не нахожу где тут это указано, а вот этот лишний интерфейс мне совсем не нужен... Все вот эти поиск, страницы, масштаб убрать бы еще.
0
|
|
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
|
| 29.04.2016, 07:53 | |
|
Dark Byte, Вы хотите, чтобы я за Вас погуглил, как это убрать?)
0
|
|
|
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
|
|
| 29.04.2016, 07:57 [ТС] | |
|
novikov.ea, ну в общем....
Вы же написали контрол, вы лучше понимаете как это убрать.Добавлено через 1 минуту Я знаю только что эти вещи от PageViewer-а, а мне нужен ScrollViewer. Гугл мне другого и не скажет. А у вас я вообще не нахожу где это указывается...
0
|
|
|
1857 / 1363 / 429
Регистрация: 10.06.2011
Сообщений: 2,136
|
|
| 29.04.2016, 09:13 | |
|
Стиль находится в файле Generic.xaml. Я не знаю, как эту полосу убрать. Попробуйте изменить FlowDocument, находящийся в шаблоне стиля.
0
|
|
| 29.04.2016, 09:13 | |
|
Как сделать форум на сайте ? на подобии чата ? Заменить контейнер vector, использовавшийся для хранения текстовых строк (листинг 2.3), на контейнер list Как сделать в объекте ссылку на объект - контейнер?
Как сделать свой контейнер совместимым с std::allocator? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|