Поделиться через


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).

Возвращаемое значение

IAsyncOperationWithProgress<UInt32,UInt32>

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) является наиболее компактным постоянным представлением рукописного ввода. Его можно внедрить в двоичный формат документа или поместить непосредственно в буфер обмена с сохранением различных свойств рукописного ввода, таких как давление, ширина, цвет, наклон, поворот и т. д.

Применяется к

См. также раздел