эмуляция telnet / терминала для silverlight / wp7 - PullRequest
0 голосов
/ 15 августа 2011

Я пытаюсь собрать клиент telnet для манго wp7, чтобы я мог поиграть в грязь на своем телефоне разработчика. У меня возникают трудности с поиском достойной библиотеки эмуляции терминала с открытым исходным кодом, которая будет работать для Silverlight (манго примерно эквивалентно стеку sl 4). Я вижу забаву, но это было написано для wpf, и у sl, похоже, нет того элемента управления макетом потока, который он использует для отображения консоли telnet. Какие-либо предложения? Я уже могу подключиться к серверу telnet и получить двусторонний поток, но, конечно, я получаю в основном мусор без эмуляции термина.

Edit: я закончил тем, что реализовал свой собственный escape-код ascii (по сути, подмножество VT100, анализируемые, но игнорируемые неподдерживаемые опции) и механизм разбора команд telnet-сервера (это было не так сложно, как я думал) , а также мой собственный код рендеринга с использованием элемента управления RichTextBox, который был необходим из-за ограничений Silverlight на телефоне, которых нет в Silverlight для браузера или WPF в Windows.

Ответы [ 3 ]

1 голос
/ 19 августа 2011

Вы можете попытаться связаться со Стефаном Олсоном, который реализовал FlowDocument Viewer для Silverlight (к сожалению, у него еще не было времени, чтобы очистить его и выпустить код): http://www.olsonsoft.com/blogs/stefanolson/post/Introduction-to-FlowDocument-for-Silverlight.aspx

0 голосов
/ 28 сентября 2011

В итоге я реализовал собственный код эмуляции терминала / telnet с нуля.

0 голосов
/ 15 августа 2011

Вы запрашиваете технический макет или полный компонент? Что касается макета потока, все, что вам нужно, это представлять текст, поэтому StackPanel с TextBlock'ами должен работать просто отлично.

A TextBlock может поддерживать несколько Run элементов, что практически дает вам макет потока.

В любом случае, для телефона вы должны обратить внимание на настройку пользовательского интерфейса в соответствии с вашими потребностями, а не ожидать, что компонент сделает это за вас. Если бы для него был компонент, скорее всего, было бы приложение для него, и тогда не было бы причины писать для него другое приложение, не так ли? -)

...