WP7 конвертировать StrokeCollection в PNG с MVVM? - PullRequest
4 голосов
/ 28 июня 2011

У меня InkPresenter, привязанный к коллекции StrokeCollection в модели MVVM, которую я использую для панели подписи. Прежде чем отправить данные обратно на сервер, я хочу преобразовать StrokeCollection в данные PNG, вот что у меня есть (я использую библиотеку ImageTools):

// Signature is a StrokesCollection
var bounds = Signature.GetBounds();
var inkSignature = new InkPresenter {Height = bounds.Height, Width = bounds.Width, Strokes = Signature};
var wbBitmap = new WriteableBitmap(inkSignature, null);
var myImage = wbBitmap.ToImage();
byte[] by = null;
MemoryStream stream = null;
using (stream = new MemoryStream())
{
    PngEncoder png = new PngEncoder();
    png.Encode(myImage, stream);
}

Поток всегда просто заполнен нулями, я чувствую, что мне не хватает чего-то действительно простого, о чем я даже не думал. Есть идеи?

1 Ответ

1 голос
/ 12 июля 2011

Я думаю, что проблема в том, что у рендерера нет времени обновить интерфейс, прежде чем вы его захватите. Попробуйте обернуть создание растрового изображения в вызов Dispatcher.BeginInvoke.

...