Ответ 1
Я думаю, вы имеете в виду текстовое поле, автозаполняющее несколько слов. Как и TokenizedTexbox в расширенном наборе инструментов WPF. это страница: http://wpftoolkit.codeplex.com/wikipage?title=TokenizedTextBox&referringTitle=Home
Я уже провел некоторые исследования и в итоге получил несколько автозаполненных ящиков, которые имеют одну общую черту: все они соответствуют всему введенному выражению. Иногда они кажутся легко расширяемыми, но в конце они не являются.
Однако мне нужен текстовый блок, который позволяет пользователю вводить слово (например, "tag1" ), отображает всплывающее окно с предложениями на основе этого единственного слова, принимайте предложение с помощью ключа возврата и введите новое слово (например, "tag1 tag2" ) в том же текстовом поле, при этом всплывающее окно снова появится. (Мне нравится, как CintaNotes обрабатывает это)
Мне нужно это для интерфейса тегов. Часто пользователю проще писать теги в простой блок, но иногда ему нужна помощь. Это и есть автозаполнение.
Я нашел некоторые результаты, которые не работают для моей цели (imho):
Btw, Мне очень нравится, как работает Tag-Box для SO.
Есть ли у кого-нибудь идеи? Есть ли "готовое" решение где-то, что соответствует моим потребностям, но я не нашел? Или я должен сам построить его?
Спасибо!:)
Я думаю, вы имеете в виду текстовое поле, автозаполняющее несколько слов. Как и TokenizedTexbox в расширенном наборе инструментов WPF. это страница: http://wpftoolkit.codeplex.com/wikipage?title=TokenizedTextBox&referringTitle=Home
Вероятно, вам нужно создать свой собственный словарь объект Key и Value и подключите этот Словарь к событиям текстового поля и закройте диалоговое окно предложений, в котором отображаются Значения из Словаря
Отметьте эту реализацию: http://code.google.com/p/kocontrols/downloads/list Вы можете ввести собственный алгоритм поиска и собственный конвертер, который преобразует выбранный элемент в текст, который вы показываете в TextBox. Вам придется немного изменить его, но я думаю, что вы сможете решить свою проблему, основываясь на этой реализации. Я никогда не думал об этом типе использования. Не можете ли вы использовать разные текстовые поля для разных тегов? Что-то похожее на то, как это делает код goole?
Если у вас есть время, вы можете использовать RichEditControl или TextBox и применить тот же шаблон, который используется в редакторах Intellisense или редакторе, дополняющих Code Completation: Подключить события изменения текста, контекст Recogize (последнее/текущее слово) и отобразить список опций на всплывающее управление. И, необязательно, при фиксации (обнаружение принятия или пробела) применить формат к слову.