Скачал Silverlight 4.0 Toolkit. Сделал как и в этой библиотеке *.Design сборку для своих контролов. При подключении сборки с контролами, возникает варнинг, но при указании alias'a вроде собираеться (). здесь Далее подключаю сборку в Blend'e и он не подхватывает. Как это можно продебажить, или в какую сторону смотреть? Если надо, могу выложить проект с Design.
Мудр тот, кто знает не многое, а нужное
Re: Подключение Design time свойств для контрола в Blend'e 4
INR>Скачал Silverlight 4.0 Toolkit. Сделал как и в этой библиотеке *.Design сборку для своих контролов. При подключении сборки с контролами, возникает варнинг, но при указании alias'a вроде собираеться (). здесь Далее подключаю сборку в Blend'e и он не подхватывает. Как это можно продебажить, или в какую сторону смотреть? Если надо, могу выложить проект с Design.
Версии Microsoft.Windows.Design.. сборок от этого Бленда используете?
Дебажить можно — открываете студию, открываете Бленд, аттачите студию к Бленду, открываете свой проект в Бленде..
Если в принципе ваша сборка грузится, но есть какие-то ошибки — увидите. Хотя лучше поставить брейкпойнт в IProvideAttributeTable.AttributeTable чтобы убедиться в том, что сборка грузится.
Если туда не попадете, проверяйте, как у вас атрибуты заданы. Есть ли атрибут
[assembly: ProvideMetadata(typeof(имя класса, реализующего IProvideAttributeTable))] и правильный ли в нем неймспейс указан. Лежит ли дизайн-тайм сборка в той же папке, в которой основная библиотека лежит. Можно еще попробовать в AssemblyFoldersEx маршрут к папке прописать, но Бленд 3 без этого подхватывает, наверное и 4-й должен.
Здравствуйте, notacat, Вы писали:
INR>>Скачал Silverlight 4.0 Toolkit. Сделал как и в этой библиотеке *.Design сборку для своих контролов. При подключении сборки с контролами, возникает варнинг, но при указании alias'a вроде собираеться (). здесь Далее подключаю сборку в Blend'e и он не подхватывает. Как это можно продебажить, или в какую сторону смотреть? Если надо, могу выложить проект с Design.
N>Версии Microsoft.Windows.Design.. сборок от этого Бленда используете? N>Дебажить можно — открываете студию, открываете Бленд, аттачите студию к Бленду, открываете свой проект в Бленде.. N>Если в принципе ваша сборка грузится, но есть какие-то ошибки — увидите. Хотя лучше поставить брейкпойнт в IProvideAttributeTable.AttributeTable чтобы убедиться в том, что сборка грузится. N>Если туда не попадете, проверяйте, как у вас атрибуты заданы. Есть ли атрибут N>[assembly: ProvideMetadata(typeof(имя класса, реализующего IProvideAttributeTable))] и правильный ли в нем неймспейс указан. Лежит ли дизайн-тайм сборка в той же папке, в которой основная библиотека лежит. Можно еще попробовать в AssemblyFoldersEx маршрут к папке прописать, но Бленд 3 без этого подхватывает, наверное и 4-й должен.
Спасибо, пересобрал со сборками из blend'a. Всё заработало.
Мудр тот, кто знает не многое, а нужное
Re[2]: Подключение Design time свойств для контрола в Blend'
Здравствуйте, notacat, Вы писали:
INR>>Скачал Silverlight 4.0 Toolkit. Сделал как и в этой библиотеке *.Design сборку для своих контролов. При подключении сборки с контролами, возникает варнинг, но при указании alias'a вроде собираеться (). здесь Далее подключаю сборку в Blend'e и он не подхватывает. Как это можно продебажить, или в какую сторону смотреть? Если надо, могу выложить проект с Design.
N>Версии Microsoft.Windows.Design.. сборок от этого Бленда используете? N>Дебажить можно — открываете студию, открываете Бленд, аттачите студию к Бленду, открываете свой проект в Бленде.. N>Если в принципе ваша сборка грузится, но есть какие-то ошибки — увидите. Хотя лучше поставить брейкпойнт в IProvideAttributeTable.AttributeTable чтобы убедиться в том, что сборка грузится. N>Если туда не попадете, проверяйте, как у вас атрибуты заданы. Есть ли атрибут N>[assembly: ProvideMetadata(typeof(имя класса, реализующего IProvideAttributeTable))] и правильный ли в нем неймспейс указан. Лежит ли дизайн-тайм сборка в той же папке, в которой основная библиотека лежит. Можно еще попробовать в AssemblyFoldersEx маршрут к папке прописать, но Бленд 3 без этого подхватывает, наверное и 4-й должен.
Теперь пишет: 'Could not load file or assembly 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)' VisualizationControls.Design. При добавлении xaml dictionary. Не сталкивались?
Мудр тот, кто знает не многое, а нужное
Re[3]: Подключение Design time свойств для контрола в Blend'
INR>Теперь пишет: 'Could not load file or assembly 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)' VisualizationControls.Design. При добавлении xaml dictionary. Не сталкивались?
2.0.5.0 — это от Сильверлайта? Для дизайн тайма надо от обычного фреймворка System.Core (3.5)
Re[3]: Подключение Design time свойств для контрола в Blend'
В общем, все печально, как раз этим же самым занимаюсь. Весь UI, который показывается в дизайнере (адорнеры или там PropertyValueEditor'ы), должен реализовываться в WPF. При этом надо ссылаться на свою Сильверлайтовскую сборку и, возможно, на еще что-нибудь от Сильверлайта. Происходит элементарная вещь — референсы путаются. Особенно, если есть xaml, у меня в тестовом проекте просто неизвестная ошибка компилятора возникает. Хотя все то же самое для WPF контролов уже работает.
— в одной дизайн-тайм сборке (CiderControls.Common.VisualStudio.Design) есть ссылки только на WPF сборки. Там объявлен собственно весь дизайн-тайм, который требует чего-нибудь в дизайнере рисовать и т.д.
— отдельная дизайн-тайм сборка (CiderControls.Silverlight.VisualStudio.Design.Types) референсит сильверлайт сборки, которые нужны и занимается только тем, что возвращает правильные типы и свойства.
— и уже третья дизайн-тайм сборка (CiderControls.Silverlight.VisualStudio.Design) референсит первые две и собственно регистрирует метаданные. Именно эта сборка грузится дизайнером.
Карл пишет, что другие сценарии он даже не будет рассматривать, потому что там обязательно будут путаться типы от сильверлайта и от WPF.
Re[4]: Подключение Design time свойств для контрола в Blend'
Здравствуйте, notacat, Вы писали:
N>В общем, все печально, как раз этим же самым занимаюсь. Весь UI, который показывается в дизайнере (адорнеры или там PropertyValueEditor'ы), должен реализовываться в WPF. При этом надо ссылаться на свою Сильверлайтовскую сборку и, возможно, на еще что-нибудь от Сильверлайта. Происходит элементарная вещь — референсы путаются. Особенно, если есть xaml, у меня в тестовом проекте просто неизвестная ошибка компилятора возникает. Хотя все то же самое для WPF контролов уже работает.
N>Вот статья на эту тему с примерами:
N>http://karlshifflett.wordpress.com/2009/11/20/extensibility-series-wpf-silverlight-design-time-code-sharing-part-i/
N>Насколько я пока понимаю, идея следующая:
N>- в одной дизайн-тайм сборке (CiderControls.Common.VisualStudio.Design) есть ссылки только на WPF сборки. Там объявлен собственно весь дизайн-тайм, который требует чего-нибудь в дизайнере рисовать и т.д.
N>- отдельная дизайн-тайм сборка (CiderControls.Silverlight.VisualStudio.Design.Types) референсит сильверлайт сборки, которые нужны и занимается только тем, что возвращает правильные типы и свойства.
N>- и уже третья дизайн-тайм сборка (CiderControls.Silverlight.VisualStudio.Design) референсит первые две и собственно регистрирует метаданные. Именно эта сборка грузится дизайнером.
N>Карл пишет, что другие сценарии он даже не будет рассматривать, потому что там обязательно будут путаться типы от сильверлайта и от WPF.
Спасибо за статью, дальше попробую делать как в статье. Пока-что xaml файл объявил как embedded resource и гружу через Xaml.Load.
Мудр тот, кто знает не многое, а нужное
Re[5]: Подключение Design time свойств для контрола в Blend'
INR>Спасибо за статью, дальше попробую делать как в статье. Пока-что xaml файл объявил как embedded resource и гружу через Xaml.Load.
Там еще на сайте поищите, где-то выложен исходный код дизайн-тайма для XAMLPowerToys, тоже интересно