Condividi tramite


InkManager.SaveAsync(IOutputStream) Metodo

Definizione

Nota

Per l'app di Windows universale con Extensible Application Markup Language (XAML), è consigliabile usare InkPresenter e il controllo InkCanvas anziché InkManager.

Salva in modo asincrono tutti gli oggetti InkStroke nell'insieme InkStroke gestito da InkManager nel flusso specificato.

I dati penna vengono serializzati come metadati ISF (Ink Serialized Format) e incorporati in un file GIF (Graphics Interchange Format).

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)

Parametri

outputStream
IOutputStream

Il flusso di destinazione. È possibile specificare invece un oggetto IRandomAccessStream (richiede IOutputStream).

Restituisce

IAsyncOperationWithProgress<UInt32,UInt32>

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

IAsyncOperationWithProgress<uint32_t,uint32_t>

Dimensioni del flusso salvato e dello stato dell'operazione asincrona come numero di byte inviati. Per altre informazioni, vedere Metodo WriteAsync .

Implementazioni

Attributi

Esempio

La saveStrokes funzione in questo esempio illustra come:

  • Visualizzare una schermata di salvataggio file in cui il tipo di file è vincolato al formato GIF (Graphics Interchange Format) usando l'oggetto FileSavePicker .
  • Configurare un flusso di output tramite il metodo OpenAsync .
  • Utilizzare il metodo SaveAsync di un oggetto InkManager (inkManager) per serializzare i dati dell'input penna in un flusso di output e incorporarlo in un file GIF (Graphics Interchange Format) (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.";
    }
}

Commenti

L'incorporamento dei metadati in un file GIF (Graphics Interchange Format) consente di visualizzare l'input penna nelle applicazioni non abilitate per l'input penna, mantenendo la fedeltà completa per le applicazioni abilitate per l'input penna. Questo formato è ideale per il trasporto del contenuto penna all'interno di un file HTML e renderlo utilizzabile da applicazioni input penna e non penna.

Nota

Ink Serialized Format (ISF) è la rappresentazione più compatta dell'input penna. Può essere incorporato all'interno di un formato di documento binario o posizionato direttamente negli Appunti mantenendo diverse proprietà penna, ad esempio pressione, larghezza, colore, inclinazione, rotazione e così via.

Si applica a

Vedi anche