NodeChangingAction
محتويات
[
يخفي
]NodeChangingAction enumeration
يحدد نوع تغيير العقدة.
public enum NodeChangingAction
قيم
اسم | قيمة | وصف |
---|---|---|
Insert | 0 | يتم إدراج عقدة في الشجرة. |
Remove | 1 | تتم إزالة العقدة من الشجرة. |
أمثلة
يوضح كيفية استخدام NodeChangingCallback لمراقبة التغييرات التي تطرأ على شجرة المستندات في الوقت الفعلي أثناء قيامنا بتحريرها.
public void NodeChangingCallback()
{
Document doc = new Document();
doc.NodeChangingCallback = new NodeChangingPrinter();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Hello world!");
builder.StartTable();
builder.InsertCell();
builder.Write("Cell 1");
builder.InsertCell();
builder.Write("Cell 2");
builder.EndTable();
#if NET48 || JAVA
builder.InsertImage(Image.FromFile(ImageDir + "Logo.jpg"));
#elif NET5_0_OR_GREATER || __MOBILE__
using (SKBitmap image = SKBitmap.Decode(ImageDir + "Logo.jpg"))
builder.InsertImage(image);
#endif
builder.CurrentParagraph.ParentNode.RemoveAllChildren();
}
/// <summary>
/// يطبع كل إدخال/إزالة للعقدة أثناء حدوثها في المستند.
/// </summary>
private class NodeChangingPrinter : INodeChangingCallback
{
void INodeChangingCallback.NodeInserting(NodeChangingArgs args)
{
Assert.AreEqual(NodeChangingAction.Insert, args.Action);
Assert.AreEqual(null, args.OldParent);
}
void INodeChangingCallback.NodeInserted(NodeChangingArgs args)
{
Assert.AreEqual(NodeChangingAction.Insert, args.Action);
Assert.NotNull(args.NewParent);
Console.WriteLine("Inserted node:");
Console.WriteLine($"\tType:\t{args.Node.NodeType}");
if (args.Node.GetText().Trim() != "")
{
Console.WriteLine($"\tText:\t\"{args.Node.GetText().Trim()}\"");
}
Console.WriteLine($"\tHash:\t{args.Node.GetHashCode()}");
Console.WriteLine($"\tParent:\t{args.NewParent.NodeType} ({args.NewParent.GetHashCode()})");
}
void INodeChangingCallback.NodeRemoving(NodeChangingArgs args)
{
Assert.AreEqual(NodeChangingAction.Remove, args.Action);
}
void INodeChangingCallback.NodeRemoved(NodeChangingArgs args)
{
Assert.AreEqual(NodeChangingAction.Remove, args.Action);
Assert.Null(args.NewParent);
Console.WriteLine($"Removed node: {args.Node.NodeType} ({args.Node.GetHashCode()})");
}
}
أنظر أيضا
- class NodeChangingArgs
- property Action
- مساحة الاسم Aspose.Words
- المجسم Aspose.Words