Программно получить XAML FrameworkElement в SL4 - PullRequest
0 голосов
/ 02 марта 2012

Я пытался сериализовать FrameworkElement с DavidPoll's XamlSerializer, но я получаю совершенно другой результат, чем (правильный), который я получаю с Silverlight Spy.Например, с XamlSerializer я получаю много пустых тегов (таких как MatrixTransform, ScrollViewer и т. Д.), Но не узел ContentPresenter, который я получаю с Silverlight Spy.Любая идея, как получить чистое логическое дерево во время выполнения?

Обновление: у меня есть программа конструктора форм, которая хранит эти формы в БД и во время выполнения создает объекты (элементы управления пользователя) из этой информации, хранящейся в БД,Каждая форма состоит из нескольких полей.Во время выполнения он программно создает UserControl, который содержит все поля.Я хотел бы получить сгенерированный XAML, точно так же, как я могу получить его с Silverlight Spy.

Silverlight Spy

edit: я не ограничен средой Silverlight, решением для рабочего столаПриложение также действительно.

1 Ответ

1 голос
/ 02 марта 2012

Краткий ответ: я не думаю, что вы можете изнутри самого Silverlight.Извините.

Как только XAML был проанализирован и загружен в элементы каркаса, вы уже потеряли информацию.Например, регенерация path из объекта в памяти нетривиальна, и у вас не будет доступа к внутренним элементам элемента пути из кода Silverlight.

Silverlight Spy добавляет информацию, которую выиграл простой XamlSerializerне генерировать.Silverlight Spy не имеет ограничений, поскольку является «настоящим» настольным приложением с полным доступом к операционной системе, в то время как вы хотите сделать это в самом Silverlight, который является очень ограниченной средой песочницы ( по соображениям безопасности ).

...