Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
4 / 4 / 0
Регистрация: 11.03.2011
Сообщений: 115

Управление динамически созданным элементом

26.11.2012, 22:05. Показов 3982. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс, в нем две функции.
Первая функция создает кучу TextBlock, задает им свойства и выводит их в grid.
Вторая фунцкция должна к какому-то из TextBlock(задано) подключиться и изменить одно из его свойств (стиль).

С созданием проблем нет

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public void Text(string[] text)
        {
          ...
          for (int i = 1; i < text.Length;i++)
            {   
                TextBlock n = new TextBlock();
                TranslateTransform transform = new TranslateTransform();
                temp = 30;
                transform.X = temp;
                transform.Y = 18 * i;
                n.RenderTransform = transform;
                RotateTransform a= new RotateTransform();
                a.Angle = 0;
                DropShadowEffect dropShadow = new DropShadowEffect();
                dropShadow.Direction = 0;
                dropShadow.ShadowDepth = 0;
                dropShadow.BlurRadius = 10;
                dropShadow.Color = Color.FromRgb(255, 255, 255);
                n.Effect = dropShadow;
                n.Style = (Style)this.FindResource("TextBlockStyleRed");
                n.LayoutTransform = a;
                n.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                n.FontSize = 16;
                n.Name = "display" + i;
                if (text[i - 1].Contains("["))
                {
                    n.Text = text[i - 1].Remove(text[i - 1].IndexOf("["));
                }
                else
                {
                    n.Text = text[i - 1];
                }
                grid1.Children.Add(n);
}
}
а как из другой функции изменить стиль этого элемента?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.11.2012, 22:05
Ответы с готовыми решениями:

Обращение к динамически созданным TextBox
Помогите пожалуйста! Динамически создаю textBoxы в которых выводиться информация из класса, также динамически создается CheckBox и Button....

Обращение к динамически созданным элементам WPF
Доброго времени суток! Разбираюсь с WPF... Создал сервис, который генерирует разметку XAML. Например такую: &lt;Canvas...

Управление элементом из другого потока
Всем привет) В общем, вопрос такой: есть компонент Image на форме, который по умолчанию скрыт. Его надо показать на время, которое...

16
 Аватар для Jylik
110 / 51 / 14
Регистрация: 06.03.2012
Сообщений: 858
26.11.2012, 22:14
ista011, должно быть полезно:
Полезная ссылка >,,<

Добавлено через 1 минуту
ista011, Что значит заменить одно из свойчтв?!

Добавлено через 1 минуту
ista011, Бинд хочешь добавить ?!
0
4 / 4 / 0
Регистрация: 11.03.2011
Сообщений: 115
26.11.2012, 22:16  [ТС]
Свойством кнопки является стиль, который у меня имеется.
0
 Аватар для Jylik
110 / 51 / 14
Регистрация: 06.03.2012
Сообщений: 858
26.11.2012, 22:28
ista011, стиль поставить?!
0
4 / 4 / 0
Регистрация: 11.03.2011
Сообщений: 115
26.11.2012, 23:13  [ТС]
Да, к динамически созданному TextBlock (код выше).
0
 Аватар для Jylik
110 / 51 / 14
Регистрация: 06.03.2012
Сообщений: 858
27.11.2012, 00:02
Воть...
C#
1
n.Style = (Style)Application.Current.Resources["TextBlockStyleRed"];
0
4 / 4 / 0
Регистрация: 11.03.2011
Сообщений: 115
27.11.2012, 00:41  [ТС]
Да, но это только при создании работает и уже есть у меня. Мне надо на уже созданном комопненте поменять, а как динамическому элементу по имени обратиться, которое задано при его создании, я не знаю.

Добавлено через 25 минут
Можно пойти другим путем:
При создании каждого из TextBlock ему присваиваивается имя, сам же элемент добавляется в коллекцию элементов grid1. Как узнать состав этой коллекции?
0
 Аватар для Jylik
110 / 51 / 14
Регистрация: 06.03.2012
Сообщений: 858
27.11.2012, 21:29
ista011, эм... Даже не знаю... Мне тоже для одного проекта надо динамически созданные кнопки + колонки грида как то сохранить в коллекцию, но пока ещё не сообразил. А к созданым элементам можешь обратится либо через имя либо через объект
C#
1
n.Name = "display" + i;
Ну тут думаю надо просто либо высчитать имя, либо какнить есчО )

Добавлено через 1 минуту
ista011, Мои динамически созданные кнопки имеют общую команду и общий вид...

Добавлено через 24 секунды
ista011, Может можно попробывать через команду о..о
0
4 / 4 / 0
Регистрация: 11.03.2011
Сообщений: 115
27.11.2012, 21:30  [ТС]
У меня они тоже имеют общую команду и общий вид, поскольку вообще в цикле создаются.

Через имя студия не дает обратиться или я не догоная как это сделать в моем случае.
0
 Аватар для Jylik
110 / 51 / 14
Регистрация: 06.03.2012
Сообщений: 858
27.11.2012, 23:53
ista011, не наю, может поможет... есть такая команда, чтоб перебрать все элементы коллекции...
C#
1
2
3
4
foreach (var item in Коллекция)
{
   item.имя_элемента
}
Правда является ли грид коллекцией (не хочу студию запускать, уже засыпаю... >,,<)
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
28.11.2012, 10:49
Цитата Сообщение от ista011 Посмотреть сообщение
как динамическому элементу по имени обратиться, которое задано при его создании, я не знаю.
Так запомните этот элемент в какой-нибудь переменной.
0
4 / 4 / 0
Регистрация: 11.03.2011
Сообщений: 115
28.11.2012, 10:52  [ТС]
А какого типа должна быть переменная? Данные TextBlock'и записаны в UIElement, чтобы их можно было ещё и удалять из формы. Но через UIElement я не смог к ним обратиться...
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
28.11.2012, 10:59
Цитата Сообщение от ista011 Посмотреть сообщение
А какого типа должна быть переменная? Данные TextBlock'и записаны в UIElement, чтобы их можно было ещё и удалять из формы. Но через UIElement я не смог к ним обратиться...
Смотря насколько точно тебе потом нужно знать, что это за элемент, чтобы в нему обращаться. Может, TextBlock, может, UIElement, может, еще как-то.
То, что к TextBlock ты не смог обратиться, как к UIElement - такого быть не может, ибо первый наследник второго.
0
4 / 4 / 0
Регистрация: 11.03.2011
Сообщений: 115
28.11.2012, 11:00  [ТС]
Я каждый TextBlock n вкладываю в массив UIElement, но потом я к этому массиву как обращаться должен?
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
28.11.2012, 11:06
Цитата Сообщение от ista011 Посмотреть сообщение
Я каждый TextBlock n вкладываю в массив UIElement, но потом я к этому массиву как обращаться должен?
А в чем проблема? Ссылка на массив же есть.
И еще - я не совсем понимаю, почему именно массив, а не список, если число текстблоков заранее неизвестно.
Как размер-то определяете?
0
4 / 4 / 0
Регистрация: 11.03.2011
Сообщений: 115
28.11.2012, 11:14  [ТС]
То то и оно, что количество текстблоков заранее неизвестно, а определяется при чтении файла. Размер определяется подсчетом нужно количества текстблоков, а потом создается массив на основе этого.

Добавлено через 5 минут
По номеру в массиве обратьтся могу. Поимени - нет. Вижу только один способ: перебрать все элементы в поисках нужного или заранее знать номер элемента.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
28.11.2012, 11:20
Цитата Сообщение от ista011 Посмотреть сообщение
Вижу только один способ: перебрать все элементы в поисках нужного или заранее знать номер элемента.
Резонно. Как вариант - "нужный" элемент или его номер сразу записать в какую-то другую переменную.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.11.2012, 11:20
Помогаю со студенческими работами здесь

Управление динамически созданным объектом
Здравствуйте! Есть такая проблема, нужно по щелчку мыши на на PanelGroup разместить несколько кругов. Так вот, создал обработчик, клика,...

Обращение к динамически созданным textbox
Создаётся некоторое количество textbox TextBox tb = new TextBox; tb = new TextBox(); ...

Непонятки с динамически созданным объектом
По клику в чекБоксе динамически создаю кнопку private void chbxSettingsForAll_CheckedChanged(object sender, EventArgs e) ...

Обращение к динамически созданным формам
есть динамически созданные формы (копии главной формы) как обратиться ,допустим,к сейчас активной форме?Заранее спасибо за ответ

Обращение к динамически созданным объектам
Я динамически создаю текстовые поля (PlainTextEdit) с именами по типу name+айди_из_БД (name1, name2 и т.д). В другом слоте мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru