Моей проблемой:Создание автозаполнения текстового поля с выпадающим меню
У меня есть список из 118 имен химического элемента. И я хочу создать текстовое поле, в котором при вводе он выкинет выпадающее меню с предложением имен. Я сделал это текстовое поле в winforms, и это был кусок пирога, но мои попытки сделать его в wpf напрасны. Я пробовал расширенный набор инструментов wpf, nimgoble и некоторые другие автозаполненные текстовые библиотеки. До сих пор тупик ... Я тоже новичок в wpf, поэтому, может быть, я что-то пропустил с этими libs? Я не могу заставить их перечислить мои предметы, а некоторые даже не покажут выпадающее меню.
Вот что я хотел:
Вот как я, наконец, достиг этого:
Так что я решил это, используя комбинацию текстового поля и списка. Где в текстовом поле пользовательских типов и при его изменении (событие с измененным текстовым полем) он проверяет совпадения внутри списка, который содержит имена всех 118 элементов и отображает совпадения для введенного текста внутри списка. Вот код:
private void textBox_TextChanged(object sender, TextChangedEventArgs e)
{
listBox.Items.Clear();
if (textBox.Text.Trim() != "")
{
string regexPattern = (textBox.Text.ToString()) + "\\w*";
regexPattern = char.ToUpper(regexPattern[0]) + regexPattern.Substring(1); //prvo slovo veliko
Match match = Regex.Match(ElementNames.allElements, regexPattern);
while (match.Success && match.Value != "")
{
listBox.Items.Add(match.Value.ToString());
listBox.Visibility = Visibility.Visible;
match = match.NextMatch();
}
}
if (listBox.Items.IsEmpty || listBox.Items.Count == 119)
{
listBox.Visibility = Visibility.Collapsed;
if (listBox.Items.Count == 119) listBox.Items.Clear();
}
HighlightElementsOnTable();
OtherButtonsHighlight();
BringBackColors();
}
Я бы рекомендовал начать очень просто. Использование события с измененным текстом, чтобы узнать, что пользователь вводит. Затем распечатайте результаты, которые хотите показать. Если это сработает, вы можете начать добавлять всплывающее окно/всплывающее окно, чтобы показать результаты ... –
@FeDe Спасибо, я решил проблему, используя комбинацию текстового поля и списка, где и найти совпадение, когда textbox_changed запущен и перечисляет совпадения в списке. Кроме того, кто-нибудь мог бы усомниться в повышении или чем-то, потому что я получил плохую репутацию по этому вопросу и мешает мне стать частью этого веб-сайта. Большое спасибо .. :) – maran
попытайтесь немного изменить свой вопрос. возможно, добавьте рисунок того, что вы хотите, структурируйте его немного больше, добавьте сериал того, что oyu попробовал, и я уверен, что вы получите некоторые upvotes: D –