![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 3 Всего: 8 |
Подскажите, как лучше реализовать сценарий:
Нужно нарисовать облака. Всего типов облаков будет 5-7. Поведение/анимация у всех облаков одинаковая, но различается их внешний вид. Не кардинально, но все же. Мне видится такой подход: Сделать контрол КлоудАнимейшнКонтрол в который поместить всю анимацию облака (она примитивная) и еще поместить туда же контрол КлоудКонтрол. А вот к этому КлоудКонтролу применять различные темплейты в зависимости от типа облака. Стоит ли так делать, или есть более подходящий вариант? Как сказать КлоудКонтролу что нужно грузить свой внешний вид из какого-то определенного темплейта? За примеры буду весьма признателен! |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 2 Всего: 62 |
Задача: подменить часть контрола
Решение: использовать темплейт Все верно ![]() Ну уж про темплейты в WPF написано много. Вот, например, http://xamlcoder.com/cs/blogs/joe/archive/...f-controls.aspx |
|||
|
||||
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 3 Всего: 8 |
Как можно шаблон который я применяю к объекту в xaml, применить в .cs?
<local:MyCloud Style="{StaticResource F4}"/> Т.е. файл themes/F4.xalm сделать шаблоном для MyCloud, из кода... |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
dazy, получить ресурс с именем F4 с помощью FindResource или другими способами, кастануть его к типу Style, а затем назначить объекту MyCloud этот стиль.
-------------------- СУВ, Partizan. |
|||
|
||||
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 3 Всего: 8 |
Спасибо за наводку!
После целенаправленного поиска попалась на глаза зачетная статейка там этот вопрос подробнейшим образом расписали энтузиасты от клавиатуры. (+1) Это сообщение отредактировал(а) dazy - 10.4.2009, 15:00 |
|||
|
||||
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 3 Всего: 8 |
Что то ни как не разберусь.
Есть несколько контролов, полностью идентичные по своей структуре, различается только внешний вид (контур, кривая). У этих контролов кроме внешности все одинаковое, в том числе и state'ы. Поскольку внешность разная, я выношу ее в шаблоны. Но получается что и state'ы, хотя они и одинаковые, нужно хранить в одном и том же файле с шаблоном. Вернее у меня не получается разделить state'ы и внешний вид. Хотелось бы чтобы все шаблоны наследовали, или как то подключали общие state'ы, которые для всех шаблонов должны быть одинаковые. Подскажите как этого добиться? |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 2 Всего: 62 |
dazy, что есть state'ы? Если я правильно понял, то для внешнего вида нужно использовать ControlTemplate, а для state'ов - DataTemplate.
|
|||
|
||||
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 3 Всего: 8 |
Блин, все забываю, что тут WPF рулит
![]() States, эта концепция состояний для контрола в сильверлайте. Т.е. у контрола может быть несколько состояний, обычный, в фокусе, нажатый и т.д. Эти состояния описываются примерно как анимация, ну и запускаются переходы в какое либо состояние по событию. В СЛ нет триггеров. Вооот. Как то так. Я так думаю, что условно можно приравнять States к триггерам, хотя не уверен. А если поступить наоборот, можно ли как-то подставить в шаблон саму кривую? У меня фигуры Path, различаются только данными в Date и смещением Canvas.Top/Left, но почему то биндить эти свойства не получается. Наверно я что то не так делаю. Может с этой стороны получится решить? |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 2 Всего: 62 |
||||
|
||||
dazy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 15.9.2006 Репутация: 3 Всего: 8 |
Вопрос в том как это можно сделать?
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |