Получение данных InkCanvas для рисования в реальном времени

#c# #uwp

#c# #uwp

Вопрос:

В UWP я целый день читал документы Microsoft и не мог найти способ получить значение штриха для трансляции другим InkCanvas клиентам on difference, использующим SignalR core. ребята, вы знаете, как получить текущее InkCanvas значение, чтобы я мог его транслировать?

Ответ №1:

Можно сериализовать и десериализовать все штрихи из InkCanvas в поток и из потока:

 inkCanvas.InkPresenter.StrokeContainer.SaveAsync(outputStream);
  

И

 inkCanvas.InkPresenter.StrokeContainer.LoadAsync(inputStream);
  

Документы содержат полный образец.

В случае, если вы не хотите продолжать «перерисовку», что было бы неэффективно в этом сценарии реального времени, вы также можете сериализовать и отправлять отдельные штрихи один за другим. InkStroke класс имеет GetInkPoints метод, который возвращает список точек в штрихе. Вы можете сериализовать их и на подключенных клиентах воссоздать штрихи с помощью InkStrokeBuilder .