Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 26.04.2016, 14:07   #1
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 427
Репутация: 1
Вопрос Как сделать контейнер для чата? C# WPF XAML MVVM

Делаю чат, мне нужен контейнер в котором будут отображаться сообщения. Это должно выглядеть как в классических чатах, т.е.: поле по типу TextBox-а многострочное, но ReadOnly чтобы можно было копировать. Сообщения будут в формате "date username > message". Но самое главное и сложное надо чтобы ник (username) был кликабельным! Т.е. он во первых должен отображаться ну примерно как ссылка, такой подчеркнутый. При клике по нему можно открыть приват. (это уже я сам дореализую понятное дело, мне бы только сделать его кликабельным) А при клике правой кнопкой по нему контекстную менюшку открыть. Подскажите как это реализовать? Только не предлагать ListBox, я уже видел такие примеры в сети! Это не то совсем, потому что это уже вообще не смотрится как чат и копировать нельзя...
NewLamer&Programer вне форума   Ответить с цитированием
Старый 26.04.2016, 14:13   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 12,389
Репутация: 2542

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Цитата:
Это не то совсем, потому что это уже вообще не смотрится как чат и копировать нельзя...
Что нельзя? ItemTemplate есть же.

ItemsControl есть если ListBox не нужен.
Alex11223 на форуме   Ответить с цитированием
Старый 26.04.2016, 14:25   #3
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 427
Репутация: 1
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Что нельзя? ItemTemplate есть же.

ItemsControl есть если ListBox не нужен.
Может быть и можно туда воткнуть в шаблон какой нибудь TextBox, но во первых это будет смотреться не очень красиво (я уже пробовал), во вторых остается выделение строк ListBox-а - это вообще ни в какие ворота, в третьих самое главное - придется же делать не один TextBox, а какие то 3 контрола подряд: один будет отображать время, второй ник, третий сообщение, таким образом нельзя будет скопировать все сразу и время и ник и сообщение и наконец нельзя будет копировать весь текст в чате одним выделением, все будет ограничено сообщением от одного пользователя. Нет это не то... А вот ItemsControl надо смотреть, я им че то ни разу не пользовался, даже хз что это такое...

Да и в ItemsControl в общем то та же фигня что и с ListBox-ом. Тут проблема не в контейнере, а в способе отображения. Я хочу чтобы с чата легко было копировать, все, включая время, ник, сообщения сразу нескольких пользователей. Т.е. фактически это должно быть обычное поле ввода, но с кликабельным ником.

Последний раз редактировалось Alex11223; 26.04.2016 в 15:51.
NewLamer&Programer вне форума   Ответить с цитированием
Старый 26.04.2016, 14:41   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 12,389
Репутация: 2542

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

С копированием нескольких сложнее. Может тут что-то есть https://www.google.com/search?q=wpf+...ple+text+boxes

Но вообще обычно так не делают чаты, а берут что-нибудь типа RichEdit или какой-нибудь другой продвинутый контрол для текста (AvalonEdit, ...) или HTML.
Alex11223 на форуме   Ответить с цитированием
Старый 26.04.2016, 14:47   #5
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 427
Репутация: 1
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
С копированием нескольких сложнее. Может тут что-то есть https://www.google.com/search?q=wpf+...ple+text+boxes

Но вообще обычно так не делают чаты, а берут что-нибудь типа RichEdit или какой-нибудь другой продвинутый контрол для текста (AvalonEdit, ...) или HTML.
Согласен, это как то коряво... А какие именно контролы можно использовать? Я бы вполне мог заюзать и сторонний контрол, главное чтоб бесплатный был, а то я тут уже видел всякие Essential Objects которые добавляют в программу выскакивающее окошко с предложением купить лицензию. :D Да и причем тут HTML если у меня WPF приложение? О_о
NewLamer&Programer вне форума   Ответить с цитированием
Старый 26.04.2016, 14:59   #6
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 12,389
Репутация: 2542

icq: 512-7шесть5
skype: alexp.frl
По умолчанию

Выше ж написано какие можно.
Цитата:
Да и причем тут HTML если у меня WPF приложение? О_о
WebBrowser, Awesomium, CEF, ..., https://www.google.com/search?q=WPF+html, ...
Alex11223 на форуме   Ответить с цитированием
Старый 26.04.2016, 15:06   #7
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 427
Репутация: 1
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Выше ж написано какие можно.
Ну я посмотрел этот AvalonEdit, так это же вроде контрол для отображения кода. Зачем он мне? Или он такое тоже умеет?
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
WebBrowser, Awesomium, CEF, ..., https://www.google.com/search?q=WPF+html, ...
Не совсем понял... Это типа контролы которые отображают HTML код? (работают как браузер) А смысл то в чем? Что такого можно реализовать на HTML чего нельзя реализовать на XAML? И потом честно говоря я очень хреновый HTML программист... Вот с XAML дружу как ни странно, а HTML и вообще всю веб-разработку люто ненавижу.
NewLamer&Programer вне форума   Ответить с цитированием
Старый 26.04.2016, 15:29   #8
pu4koff
Профессионал
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,110
Репутация: 3419
По умолчанию

примеры подобных штук нужно на стэке смотреть, например http://ru.stackoverflow.com/question...-в-чате-на-wpf
__________________
http://coub.com/view/2hhtg
pu4koff вне форума   Ответить с цитированием
Старый 26.04.2016, 15:30   #9
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 427
Репутация: 1
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
примеры подобных штук нужно на стэке смотреть, например http://ru.stackoverflow.com/question...-в-чате-на-wpf
Во первых это не то вообще. Во вторых я это уже видел.

Короче проблема кажется решилась. Оказывается все необходимое уже есть встроенное и никакие дополнительные телодвижения не нужны. Будет примерно так:
Код:

<FlowDocumentScrollViewer>
	<FlowDocument>
		<Paragraph>
			<Run Text="Time "/>
			<Run Text="Nick>"/>
			<Run Text="Message"/>
		</Paragraph>
	</FlowDocument>
</FlowDocumentScrollViewer>

Только соответственно на ник надо будет подвесить стиль со всем необходимым, ну и биндинги расставить. А больше ничего и не надо!

Последний раз редактировалось Alex11223; 26.04.2016 в 15:51.
NewLamer&Programer вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WPF Mvvm Light работа с Таймерами - C# WPF Notan1310 WPF, UWP, WinRT, XAML 4 15.04.2016 06:07
WPF Mvvm CWD WPF, UWP, WinRT, XAML 0 23.07.2015 00:21
Комманды и ICommand в WPF MVVM andy301086 WPF, UWP, WinRT, XAML 0 09.07.2012 01:04
WPF контекстное меню для ListBox MVVM Нике WPF, UWP, WinRT, XAML 0 29.04.2012 15:26
WPF LisBox Selectionchanged to MVVM Нике WPF, UWP, WinRT, XAML 0 10.04.2012 22:31




18:35.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru