XpsDocumentWriter.WritingCompleted Event
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Occurs when a write operation finishes.
public:
override event System::Windows::Documents::Serialization::WritingCompletedEventHandler ^ WritingCompleted;
public override event System.Windows.Documents.Serialization.WritingCompletedEventHandler WritingCompleted;
member this.WritingCompleted : System.Windows.Documents.Serialization.WritingCompletedEventHandler
Public Overrides Custom Event WritingCompleted As WritingCompletedEventHandler
Event Type
Examples
The following example shows how to use the WritingCompleted event.
private void SaveMultipleFixedContentDocumentsAsync(
XpsDocumentWriter xpsdw, FixedDocumentSequence fds)
{
_xpsdwActive = xpsdw;
xpsdw.WritingCompleted +=
new WritingCompletedEventHandler(AsyncSaveCompleted);
xpsdw.WritingProgressChanged +=
new WritingProgressChangedEventHandler(AsyncSavingProgress);
// Write the FixedDocumentSequence as a
// collection of documents asynchronously.
xpsdw.WriteAsync(fds);
}
// Cancel an async operation
public void CancelAsync()
{
_xpsdwActive.CancelAsync();
}
#endregion // Asynchronous Save Methods
#region Async Event Handlers
//
// Create an "async operation complete" event handler
// for saving a FixedDocumentSequence
//
private void AsyncSaveCompleted(
object sender, WritingCompletedEventArgs e)
{
string result;
if (e.Cancelled) result = "Canceled";
else if (e.Error != null) result = "Error";
else result = "Asynchronous operation Completed";
// Close the pakcage
_xpsDocument.Close();
if (OnAsyncSaveChange != null)
{
AsyncSaveEventArgs asyncInfo =
new AsyncSaveEventArgs(result, true);
OnAsyncSaveChange(this, asyncInfo);
}
}
//
// Create an "async operation progress" event handler for
// monitoring the progress of saving a FixedDocumentSequence.
//
private void AsyncSavingProgress(
object sender, WritingProgressChangedEventArgs e)
{
_batchProgress++;
if (OnAsyncSaveChange != null)
{
String progress =
String.Format("{0} - {1}", e.WritingLevel.ToString(),
e.Number.ToString());
AsyncSaveEventArgs asyncInfo =
new AsyncSaveEventArgs(progress, false);
OnAsyncSaveChange(this, asyncInfo);
}
// Call EndBatchWrite when serializing multiple visuals.
if ( (_activeVtoXPSD != null) && (_batchProgress == 3) )
_activeVtoXPSD.EndBatchWrite();
}
Private Sub SaveMultipleFixedContentDocumentsAsync(ByVal xpsdw As XpsDocumentWriter, ByVal fds As FixedDocumentSequence)
_xpsdwActive = xpsdw
AddHandler xpsdw.WritingCompleted, AddressOf AsyncSaveCompleted
AddHandler xpsdw.WritingProgressChanged, AddressOf AsyncSavingProgress
' Write the FixedDocumentSequence as a
' collection of documents asynchronously.
xpsdw.WriteAsync(fds)
End Sub
' Cancel an async operation
Public Sub CancelAsync()
_xpsdwActive.CancelAsync()
End Sub
#End Region ' Asynchronous Save Methods
#Region "Async Event Handlers"
'
' Create an "async operation complete" event handler
' for saving a FixedDocumentSequence
'
Private Sub AsyncSaveCompleted(ByVal sender As Object, ByVal e As WritingCompletedEventArgs)
Dim result As String
If e.Cancelled Then
result = "Canceled"
ElseIf e.Error IsNot Nothing Then
result = "Error"
Else
result = "Asynchronous operation Completed"
End If
' Close the pakcage
_xpsDocument.Close()
If OnAsyncSaveChangeEvent IsNot Nothing Then
Dim asyncInfo As New AsyncSaveEventArgs(result, True)
RaiseEvent OnAsyncSaveChange(Me, asyncInfo)
End If
End Sub
'
' Create an "async operation progress" event handler for
' monitoring the progress of saving a FixedDocumentSequence.
'
Private Sub AsyncSavingProgress(ByVal sender As Object, ByVal e As WritingProgressChangedEventArgs)
_batchProgress += 1
If OnAsyncSaveChangeEvent IsNot Nothing Then
Dim progress As String = String.Format("{0} - {1}", e.WritingLevel.ToString(), e.Number.ToString())
Dim asyncInfo As New AsyncSaveEventArgs(progress, False)
RaiseEvent OnAsyncSaveChange(Me, asyncInfo)
End If
' Call EndBatchWrite when serializing multiple visuals.
If (_activeVtoXPSD IsNot Nothing) AndAlso (_batchProgress = 3) Then
_activeVtoXPSD.EndBatchWrite()
End If
End Sub
Applies to
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.