Compartir a través de


InkManager.SaveAsync(IOutputStream) Método

Definición

Nota

Para la aplicación universal de Windows con lenguaje de marcado de aplicación extensible (XAML), se recomienda usar InkPresenter y el control InkCanvas en lugar de InkManager.

Guarda de forma asincrónica todos los objetos InkStroke de la colección InkStroke que administra InkManager en la secuencia especificada.

Los datos de entrada de lápiz se serializan como metadatos de formato serializado de lápiz (ISF) e incrustados en un archivo de formato de intercambio de gráficos (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)

Parámetros

outputStream
IOutputStream

Flujo de destino. En su lugar, se puede especificar un objeto IRandomAccessStream (requiere IOutputStream).

Devoluciones

IAsyncOperationWithProgress<UInt32,UInt32>

Windows.Foundation.IAsyncOperationWithProgress<unsigned int,unsigned int>

IAsyncOperationWithProgress<uint32_t,uint32_t>

Tamaño de la secuencia guardada y el estado de la operación asincrónica como el número de bytes enviados. Para obtener más información, vea Método WriteAsync .

Implementaciones

Atributos

Ejemplos

La saveStrokes función de este ejemplo muestra cómo:

  • Muestra una pantalla de guardado de archivos en la que el tipo de archivo está restringido al formato de formato de intercambio de gráficos (GIF) mediante el objeto FileSavePicker .
  • Configure un flujo de salida a través del método OpenAsync .
  • Utilice el método SaveAsync de un objeto InkManager (inkManager) para serializar los datos de entrada de lápiz en un flujo de salida e insertarlos en un archivo de formato de intercambio de gráficos (storageFileGIF).
// 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.";
    }
}

Comentarios

La inserción de los metadatos en un archivo de formato de intercambio de gráficos (GIF) permite ver la entrada de lápiz en aplicaciones que no están habilitadas para entrada de lápiz, a la vez que se mantiene la fidelidad total para las aplicaciones habilitadas para entrada de lápiz. Este formato es ideal para transportar contenido de entrada de lápiz dentro de un archivo HTML y hacer que sea utilizable tanto por las aplicaciones de entrada de lápiz como por las que no son de lápiz.

Nota:

El formato serializado de lápiz (ISF) es la representación más compacta persistente de la entrada de lápiz. Se puede incrustar en un formato de documento binario o colocarse directamente en el Portapapeles, a la vez que conserva varias propiedades de entrada de lápiz, como presión, ancho, color, inclinación, giro, etc.

Se aplica a

Consulte también