Если вы говорите о загрузке действия, загруженного из свободного файла xaml, вы можете сделать это.
Вы должны использовать класс ActivityXamlServices, чтобы загрузить (имя файла) файл во время выполнения.Когда вы делаете это, вы получаете десериализованный экземпляр Activity.Конечно, у вас должны быть любые соответствующие сборки (любые сборки, на которые ссылается Activity, определенные в файле xaml), либо загруженные в AppDomain, либо доступные для загрузки там, где их может найти загрузчик Fusion.
Как только вы это сделаете, выможет создать ToolboxItemWrapper
, передавая activityInstance.GetType()
.
Одна вещь, поскольку xaml-файл Activity - это Activity, которая содержит другие Activity, вы получите конструктор по умолчанию, который показывает только пустой заголовок.Нет простого способа * развернуть дочерние действия, определенные в файле xaml в конструкторе, когда вы отбрасываете их на поверхность конструктора.
* Я считаю, что вы можете создать класс, который реализует IActivityTemplateFactory который вы можете передать ToolboxItemWrapper
, который может передавать корневую активность, определенную в вашем файле xaml, так что при перетаскивании элемента из панели инструментов он автоматически добавит все дочерние действия, определенные в файле xaml.Но я никогда этого не делал и не уверен, что сможешь.