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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [SL] Наследник Line 
:(
    Опции темы
NightBlaze
Дата 24.6.2009, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Подскажите как правильно сделать наследника Line.
Необходимо, чтобы обычная линия инкапсулирвоала дополнительные свойства и методы. Напрямую создать потомка не получается, т.к. класс Line помечен как sealed. Если я создаю UserControl с линией, то мне приходится фактически работать с двумя объектами: самой линией и моим контролом, который содержит необходимые свойства.
Чувствую, что проблема как-то просто решается, но никак не могу найти ответ smile
PM MAIL   Вверх
Partizan
Дата 25.6.2009, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



NightBlaze, если не получается наследовать, то всегда есть возможность агрегировать объект Line


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
dazy
Дата 25.6.2009, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А если наследоваться от shape, и "повторить" функционал line? Там же вроде не сложный контрол.
PM MAIL   Вверх
NightBlaze
Дата 25.6.2009, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Partizan, можешь вкратце рассказать что такое "агрегировать"?

dazy, хотелось бы именно от линии, чтобы не писать лишнего кода smile (не в плане что лень написать лишние 20 строк, а в смысле что не хочется повторно писать код, который уже написан).
PM MAIL   Вверх
Partizan
Дата 25.6.2009, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



NightBlaze, 

Код

public class ExtendedLine
{
     private Line internalLine = new Line();
     
     public double ActualWidth
     {
          get { return internalLine.ActualWidth }
     }


     public double ActualHeight
     {
          get { return internalLine.ActualHeight }
     }
}


Данный пример только демонстрирует принцип агрегации...реально вместо ActualWidth и ActualHeight должны быть DependencyProperty

з.ы. а ещё можно совместить наследование Shape с агрегацией объекта Line и выполнение необходимых действий передать агрегируемому объекту.


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
NightBlaze
Дата 25.6.2009, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Partizan, спс уже разобрался что такое агрегация. На самом деле я ее использую, просто не знал, что этот прием так называется.
Пойду копать в сторону депенденси пропети, т.к. раньше их не использовал.
PM MAIL   Вверх
dazy
Дата 25.6.2009, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Пойду копать в сторону депенденси пропети

Удобный сниппет, чтобы не писать в ручную эту тягомотину.
PM MAIL   Вверх
Partizan
Дата 25.6.2009, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



dazy, да вроде в студии встроенный есть propdp


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
dazy
Дата 25.6.2009, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

dazy, да вроде в студии встроенный есть propdp 


Я не знаю, может он для WPF и подходит, но для SL, мне его постоянно править приходилось. А этот, вроде сразу то что надо.
Хотя, честно говоря, я не помню этот сниппет ставил или какой другой, их вообще-то в сети навалом, поделок таких.

Добавлено через 6 минут и 40 секунд
Точно, вру... вот эту сборку сниппетов ставил, нормально работают. Есть простой ДП, или с коллбеком, ну и еще удобные штучки, которые экономят время и нервы. 
--- это все для сильверлайта онли ----
PM MAIL   Вверх
NightBlaze
Дата 25.6.2009, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


 




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


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

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