![]() |
Модераторы: gambit, Kefir, Partizan |
![]() ![]() ![]() |
|
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Добрый день...
собственно вопрос в следующем: есть ли возможность запихнуть какойнить WPF UI...ну допустим DockPanel с размещённой на ней элементами в Add-in(System.Addin), чтобы потом Хост-приложение могло размещать эту докпанель на себе и чтобы эта докпанель была полноценным элементом хост-приложения... читал мсдн...там описаны ограничения, которые не позволяют делать с UI расположенным в Addin некоторые вещи...например такие как трансформация... так вот может у когонить удачно получалось с использованием System.Addin разносить элементы UI по разным сборкам? -------------------- СУВ, Partizan. |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
=) судя по довольно маленькому количеству ответов, никто UI-parts приложения в System.Addin не запихивал...
в общем UI я туда запихнул...только когда я его дёргаю из плагина и располагаю на форме, он выглядит как обычный WinForms контрол...и никакие стили к нему почему-то не применяются... мож кто знает как это обойти? -------------------- СУВ, Partizan. |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 22 Всего: 87 |
Partizan, не работал с аддинами. Вообще, пока что не очень хорошо понимаю что ты пытаешься сделать. что значит "запихнуть какойнить WPF UI"?
|
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
суть такова:
1)есть некоторое приложение-хост...оно представляет собой главную форму... 2)есть множество других приложений, которые оформлены как add-inы...каждое из этих приложений имеет UI(Grid с дочерними элементами), который при желании может дёргаться хостом для последующего расположения в некой области главной формы. так как Хост и Add-in загружаются в разные домены, то дёргать UI из Add-inов приходится через методы FrameworkElementAdapters::ViewToContractAdapter и FrameworkElementAdapters::ContractToViewAdapter...таким образом UI пересекает границы домена в который загружен Addin и попадает в домен Хоста. В результате получается экземнляр некоего класса обёртки MS.Internal.Control.AddInHost(фактически насколько я понимаю передаётся просто hwnd UIElement-а и располагается на главной форме так же как и обычный WinForms контрол) =( -------------------- СУВ, Partizan. |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
в общем проблема со кастомным стайлингом UI-партов из addin-а решилась, но появилась другая:
надо чтобы UI выдернутый из add-inа наследовал стиль хост-окна...но и с этим я наверно справлюсь... на днях отпишу что и как из этого получится... -------------------- СУВ, Partizan. |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
всё получилось, всё отлично...
скажу лишь что задача реализуема ибо описать всё вкраце очень тяжело. так что если у кого-то будут подобные проблемы, обращайтесь =) -------------------- СУВ, Partizan. |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 2 Всего: 118 |
sample дай) интересно ж...
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Всё будет =) только попозже чуть) на выходных не было времени писать статью)
-------------------- СУВ, Partizan. |
|||
|
||||
lehin |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 2.4.2009 Репутация: нет Всего: нет |
sample очень уж хочется увидеть)
могу выложить свой пример - если есть время, хотелось бы услышать совет (как в приложение с docking-панелью встроить addin с другим winforms контролом) не смог (пока) решить проблему с эксепшеном в PresentationFramework, возникающим при перемещении docking-панели и некорректным отображением контрола (не растягивается внутри контейнера в отличии от контролов, создаваемых в том же домене) спасибо |
|||
|
||||
xxxSeVa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 31.3.2009 Репутация: нет Всего: нет |
Для plug-in'ов есть специально обученный framework - MAF Manager AddIn Framework with WPF
|
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
xxxSeVa, MAF == System.Addin....в топике о нём и речь...
lehin, руки пока дошли написать только одну статью о System.Addin...на подходе вторая... но взаимодействие с UI-ными элементами из других доменов будет где-то в 3-й или 4-й статьях, которые, скорее всего будут в начале мая... -------------------- СУВ, Partizan. |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 2 Всего: 62 |
Последняя тенденция - ругать System.AddIn, хвалить MEF.
Partizan, может, ну его этот System.AddId? ;) |
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Idsa, нет-нет ) Это взаимодополняющие технологии..Основная фича System.Addin - изоляция плагинов... MEF обеспечивает другие вещи, очень, кстати сладкие, но не обеспечивает того, что даёт System.Addin
![]() -------------------- СУВ, Partizan. |
|||
|
||||
xxxSeVa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 31.3.2009 Репутация: нет Всего: нет |
Да, MEF совсем из другой серии.А зачем вам нужна эта изоляция в купе с дополнительными тормозами?Простой загрузки модулей по требонию не достаточно?Трудно представить вариант,где выгрузка критична.
|
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
xxxSeVa,
если я разработчик некоего программного комплекса и у моего комплекса есть некоторый Public API, а я не хочу, чтобы бажные плагины сторонних разработчиков отваливали моё приложение, то использование изоляции было бы полезно -------------------- СУВ, Partizan. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |