Запустите FindVisualChildren несколько раз в WPF

У меня есть текстовый файл, который содержит 10 слов, по одному в каждой строке. Мое намерение состоит в том, чтобы вызывать каждую строку, визуализировать слово в Textbox и извлекать каждую букву слова и смешивать его со случайными буквами. Идея состоит в том, что пользователь смотрит на слово и формирует его, используя каждую кнопку с соответствующей буквой, а также Это можно увидеть на рисунке.

Снимок экрана: captura de pantalla

На этом изображении вы можете увидеть, как кнопки настроены в xaml без каких-либо конкретное имя, и когда код выполняется, буквы назначаются с помощью функции FindVisualChildren, но это работает только для первого слова файла.

Как я могу выполнить эту функцию несколько раз?


Чтобы найти буквы (те, которые соответствуют слову, и случайные) внутри кнопок, которые я использую называется функцией findvisualChildren, которая отвечает за присвоение каждой кнопке буквы, соответствующей ей, и отображение ее в качестве ее содержимого.

Это код:

public static IEnumerable FindVisualChildren(DependencyObject depObj) where T : DependencyObject
{
    if (depObj != null)
    {
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
            if (child != null && child is T)
            {
                yield return (T)child;
            }

            foreach (T childOfChild in FindVisualChildren(child))
            {
                yield return childOfChild;
            }
        }
    }
}

Следующим шагом является проверка того, что слово, которое пользователь сформировал, нажимая на кнопку, соответствует извлеченному слову, так что, когда все слово Сформированный должен оставить OK и показать следующее слово в файле, но когда это произойдет, я не могу переназначить новые буквы, потому что я не могу вызвать функцию, которая уже была выполнена.

Я не знаю, как заставить эту функцию выполняться n раз, если, когда я помещаю ее в while, пока она не удовлетворяет условию, вы не видите результат, поэтому я могу видеть только последнее слово из файл.

0
задан 29.03.2017, 16:18
1 ответ

Я ты recomendarГ - в две вещи:

сначала : после того, как инициализировал окно (onload) назови findvisualchildren и сохраняй список кнопок в List как глобальная переменная формы. для asГ - уже имей все кнопки в этом списке для того, чтобы asГ - ты только был должен выполнять однажды mГ©todo findvisualchildren и предотвращать проблему, которая у тебя есть.

Секунда : tambiГ©n после того, как инициализировался (onload), загрузь файл text для того, чтобы это у тебя было в памяти (в одной изменчивый тип List например) и не будь должен быть читая файл каждый раз, когда была завершена фраза.

надеялся, что он твоей помощи, привет.

0
ответ дан 24.11.2019, 14:41
  • 1
    Я добавил бы третий гораздо более простой выбор, если кнопки - всегда те же самые (OP это не осветляет) и не будут двигаться совсем не, просто ты даже не знаешь имена тех же самых, чем он поддерживает список имен objectos и может соглашаться прямо на них просто так необходимость, которая должна пробегать визуальное дерево и делать проверки больше. – gbianchi♦ 29.03.2017, 16:09

Теги

Похожие вопросы