2012-05-08 2 views
0

Я решил выгрузить часть своего поколения пользовательского интерфейса в мой внутренний сервер и передать его клиенту. Это позволит мне внести некоторые изменения в пользовательский интерфейс без перераспределения клиента.Создание XAML из консольного приложения

Должно быть ясно. На стороне сервера:

string controlToStream = XamlWriter.Save(rootControl); 

и на стороне клиента:

var stringReader = new StringReader(value); 
    var xmlTextReader = new XmlTextReader(stringReader); 
    var control = XamlReader.Load(xmlTextReader); 

Но как я могу получить доступ к WPF на сервере, не представляя полномасштабный приложение WPF в цепи? Код сервера является типичным фрагментом кода типа RPC, который запускается каждый раз, когда приходит запрос. Есть ли способ получить легкий доступ к созданию XAML/control в консольном приложении?

спасибо!

Решение Обновление для дальнейшего использования:

  1. Добавить ссылки на WPF DLLs (PresentationCore, WindowsBase, PresentationFramework, System.Xaml в моем случае) в консольном приложении

  2. Убедитесь, что только вызывать их из потока STA. StaTaskScheduler из ParallelExtensionsExtras пригождается: http://blogs.msdn.com/b/pfxteam/archive/2010/04/07/9990421.aspx

ответ

1

Я не уверен, что именно Вы бы «легкий вес», но вы можете получить доступ ко всем библиотекам WPF из консольного приложения.

Если вы не хотите использовать их по какой-либо причине, вы можете рассматривать XAML как обычный XML и использовать только XML-библиотеку для ее создания. Хотя, скорее всего, это будет больше работы.

+0

Я могу просто включить DLL-файлы wpf и вызвать их из существующего консольного приложения? Хммм об этом не думал. Я попробую сейчас. –

+0

Да, точно. Пока вам не нужно показывать элементы управления, все должно быть в порядке. – svick

+0

Работает! Обновлен вопрос с решением. Благодарю. –

Смежные вопросы