Получение XAML текущего экрана в silverlight 2 - PullRequest
1 голос
/ 10 октября 2008

Я пытаюсь отправить мою динамически созданную страницу / изображение silverlight 2 в веб-сервис ASP.net, чтобы отобразить его как растровое изображение.

Я вижу много примеров того, как получить XAML с использованием javascript ( см. Здесь ) в версии 1 silverlight, но у меня есть несколько отличий.

а) Я использую Silverlight 2 RC1
б) я динамически добавить элементы управления на страницу в C #
c) Я бы предпочел использовать c #, чтобы получить новый XAML, чтобы хранить все коды в одном месте.

Кто-нибудь знает, как извлечь XAML из элемента управления или страницы в c #?

Спасибо


Обновление: теперь это возможно в Silverlight 3 с использованием записываемого растрового изображения для сохранения XAML в формате JPEG. См. Мой блог здесь: http://blog.blueboxes.co.uk/2009/07/21/rendering-xaml-to-a-jpeg-using-silverlight-3/

Ответы [ 3 ]

0 голосов
/ 14 декабря 2008

Проверьте эту ссылку, чтобы увидеть, поможет ли она вам вообще. http://blogs.vertigo.com/personal/ralph/Blog/archive/2008/11/21/snapshot-of-xaml-control-save-to-image.aspx

0 голосов
/ 26 февраля 2009

SilverlightContrib имеет класс XamlWriter, который может извлекать XAML из оперативного элемента управления.

Это бесплатно.

Ссылка: http://silverlightcontrib.org

Код будет выглядеть примерно так:


// using SilverlightContrib.Xaml;

            var cb = new GroupBox();
            StringBuilder sb = new StringBuilder();
            XamlWriterSettings settings = new XamlWriterSettings();

            using (XamlWriter writer = XamlWriter.CreateWriter(sb, false, settings))
            {
                writer.WriteElement(cb);
            }

            string result = sb.ToString();

0 голосов
/ 10 октября 2008

к сожалению, нет метода для .ToXaml () в дереве элементов, к сожалению. Вы можете использовать VisualTreeHelper для создания такого метода и выполнять рекурсию через определенный элемент, я полагаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...