Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> доступ к свойствам динамически созданного объекта 
:(
    Опции темы
tapa
Дата 30.10.2010, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 23.1.2010

Репутация: нет
Всего: нет



Привет. Динамически создаются объекты на страница типа прямоугольник, ломаная, круг и т.п..
Каждый объект имеет уникальное значение свойства Tag.  По нему я могу найти элемент на LayoutRoot(Grid).
И теперь, например, я хочу изменить цвет фона,элемент  - прямоугольник. Но в LayoutRoot.Children элементы типа UIElement и т.е. я не могу получить доступ к полю Fill.
Как быть?
PM MAIL   Вверх
jonie
Дата 30.10.2010, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 2
Всего: 118



tapa, ну так приведите конкретный экземпляр UIElement к вашему объекту:
Код

UIElement  some = ...
Line myLine = (Line)some;



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
tapa
Дата 30.10.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 23.1.2010

Репутация: нет
Всего: нет



ой, ступилsmile 
jonie, спасибо
PM MAIL   Вверх
tapa
Дата 1.11.2010, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 23.1.2010

Репутация: нет
Всего: нет



Ещё вопрос. Суть такая - при срабатывании некоторого события, нужно сделать анимацию для объекта. Объект создаётся динамически.
Объект может быть наследником типа Control или Shape.
Проблема возникает при вызове  Storyboard.SetTargetProperty, с первым параметром всё ясно,а дальше нужно указать PropertyPath.
Код ниже работает, но только для Controls.Label. Для НЕ Label код будет немногим отличаться. 
Код

//для типов наследующих Control
 var sb = new Storyboard();
 var ca = new ColorAnimation()
 {
           To = Colors.Red,
           Duration = TimeSpan.FromSeconds(1),
           RepeatBehavior = RepeatBehavior.Forever,
           AutoReverse = true
};
//hndl экземпяр типа UIElement
 Storyboard.SetTarget(ca, hndl);
 Storyboard.SetTargetProperty(ca, new PropertyPath("(Label.Background).(SolidColorBrush.Color)"));
 sb.Children.Add(ca);
 sb.Begin();


Можно сделать что-то типа
Код

String.Format("({0}.Background).(SolidColorBrush.Color)", getObjType());

Но както не красиво чтоли)

Ещё видел вариант 
Код

 Storyboard.SetTargetProperty(ca, new PropertyPath("(0).(1)", new DependencyProperty[] { UIElement.RenderTransformProperty, TranslateTransform.YProperty }));

Но свойства DependencyProperty для другого случая. Мне нужно для анимации цвета фона.
Что тут подставить?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0800 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.