XpsDocumentWriter.WritingProgressChanged Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İlerleme durumunu XpsDocumentWriter güncelleştirdiğinde gerçekleşir.
public:
override event System::Windows::Documents::Serialization::WritingProgressChangedEventHandler ^ WritingProgressChanged;
public override event System.Windows.Documents.Serialization.WritingProgressChangedEventHandler WritingProgressChanged;
member this.WritingProgressChanged : System.Windows.Documents.Serialization.WritingProgressChangedEventHandler
Public Overrides Custom Event WritingProgressChanged As WritingProgressChangedEventHandler
Olay Türü
Örnekler
Aşağıdaki örnekte bir WritingProgressChanged olay işleyicisinin nasıl oluşturulacağı ve kullanılacağı gösterilmektedir.
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
Şunlara uygulanır
GitHub'da bizimle işbirliği yapın
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.