InkManager.SaveAsync(IOutputStream) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Примечание
Для универсальных приложений для Windows, использующих XAML, рекомендуется использовать InkPresenter и элемент управления InkCanvas вместо InkManager.
Асинхронно сохраняет все объекты InkStroke в коллекции InkStroke , управляемой InkManager , в указанном потоке.
Данные рукописного ввода сериализуются как метаданные ISF и внедряются в GIF-файл.
public:
virtual IAsyncOperationWithProgress<unsigned int, unsigned int> ^ SaveAsync(IOutputStream ^ outputStream) = SaveAsync;
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncOperationWithProgress<uint32_t, uint32_t> SaveAsync(IOutputStream const& outputStream);
/// [Windows.Foundation.Metadata.RemoteAsync]
/// [Windows.Foundation.Metadata.Overload("SaveAsync")]
IAsyncOperationWithProgress<uint32_t, uint32_t> SaveAsync(IOutputStream const& outputStream);
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncOperationWithProgress<uint,uint> SaveAsync(IOutputStream outputStream);
[Windows.Foundation.Metadata.RemoteAsync]
[Windows.Foundation.Metadata.Overload("SaveAsync")]
public IAsyncOperationWithProgress<uint,uint> SaveAsync(IOutputStream outputStream);
function saveAsync(outputStream)
Public Function SaveAsync (outputStream As IOutputStream) As IAsyncOperationWithProgress(Of UInteger, UInteger)
Параметры
- outputStream
- IOutputStream
Целевой поток. Вместо этого можно указать объект IRandomAccessStream (требуется IOutputStream).
Возвращаемое значение
Windows.Foundation.IAsyncOperationWithProgress<unsigned int,unsigned int>
IAsyncOperationWithProgress<uint32_t,uint32_t>
Размер сохраненного потока и состояние асинхронной операции в виде количества отправленных байтов. Дополнительные сведения см. в разделе Метод WriteAsync .
Реализации
- Атрибуты
Примеры
Функция saveStrokes
в этом примере демонстрирует следующее:
- Отображение экрана сохранения файла, на котором тип файла ограничен форматом GIF с помощью объекта FileSavePicker .
- Настройте выходной поток с помощью метода OpenAsync .
- Используйте метод SaveAsync объекта InkManager (
inkManager
), чтобы сериализовать данные рукописного ввода в выходной поток и внедрить их в GIF-файл (storageFile
).
// Save all strokes owned by inkManager.
function saveStrokes()
{
// Ensure that strokes exist before calling saveAsync.
if (inkManager.getStrokes().size > 0)
{
// Set up the file save screen.
var savePicker = Windows.Storage.Pickers.FileSavePicker();
savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
savePicker.fileTypeChoices.insert("GIF with embedded ISF", [".gif"]);
savePicker.defaultFileExtension = ".gif";
// Set up the stream.
var saveStream = null;
// Asynchronously save the ink data to the stream.
savePicker.pickSaveFileAsync().done(
function (file)
{
if (null !== file)
{
file.openAsync(Windows.Storage.FileAccessMode.readWrite).then(
function (stream)
{
saveStream = stream;
return inkManager.saveAsync(saveStream);
}
).then(
function ()
{
return saveStream.flushAsync();
},
function (e) {
// Override the standard saveAsync error with our own.
throw new Error("saveAsync");
}
).done(
function ()
{
statusMessage.innerText = "Strokes saved as GIF with embedded ISF (.gif).";
saveStream.close();
},
function (e) {
statusMessage.innerText = "Save: " + e.toString();
// Close the stream if open.
if (saveStream) {
saveStream.close();
}
}
);
}
}
);
}
else
{
statusMessage.innerText = "No strokes to save.";
}
}
Комментарии
Внедрение метаданных в GIF-файл позволяет просматривать рукописный ввод в приложениях, которые не поддерживают рукописный ввод, сохраняя при этом полную точность для приложений с поддержкой рукописного ввода. Этот формат идеально подходит для транспортировки содержимого рукописного ввода в HTML-файле и делает его пригодным для использования как рукописным, так и не рукописным приложениям.
Примечание
Рукописный сериализованный формат (ISF) является наиболее компактным постоянным представлением рукописного ввода. Его можно внедрить в двоичный формат документа или поместить непосредственно в буфер обмена с сохранением различных свойств рукописного ввода, таких как давление, ширина, цвет, наклон, поворот и т. д.
Применяется к
См. также раздел
- Взаимодействие с помощью пера
- Начало работы: поддержка рукописного ввода в приложении UWP
- Пример анализа рукописного ввода (базовый) (C#)
- Пример распознавания рукописного ввода (C#)
- Сохранение и загрузка росчерков пера из файла Ink Serialized Format (ISF)
- Сохранение и загрузка росчерков пера из буфера обмена
- Пример расположения и ориентации панели инструментов рукописного ввода (базовый)
- Пример расположения и ориентации панели инструментов рукописного ввода (динамичный)
- Пример раскраски
- Пример семейных заметок
- Пример рукописного ввода (JavaScript)
- Простой пример рукописного ввода (C#/C++)
- Пример сложного рукописного ввода (C++)
- Пример анализа рукописного ввода