Я решил выгрузить часть своего поколения пользовательского интерфейса в мой внутренний сервер и передать его клиенту. Это позволит мне внести некоторые изменения в пользовательский интерфейс без перераспределения клиента.Создание 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 в консольном приложении?
спасибо!
Решение Обновление для дальнейшего использования:
Добавить ссылки на WPF DLLs (PresentationCore, WindowsBase, PresentationFramework, System.Xaml в моем случае) в консольном приложении
Убедитесь, что только вызывать их из потока STA. StaTaskScheduler из ParallelExtensionsExtras пригождается: http://blogs.msdn.com/b/pfxteam/archive/2010/04/07/9990421.aspx
Я могу просто включить DLL-файлы wpf и вызвать их из существующего консольного приложения? Хммм об этом не думал. Я попробую сейчас. –
Да, точно. Пока вам не нужно показывать элементы управления, все должно быть в порядке. – svick
Работает! Обновлен вопрос с решением. Благодарю. –