Shape

Shape class

يمثل كائنًا في طبقة الرسم، مثل الشكل التلقائي، أو مربع النص، أو الشكل الحر، أو كائن OLE، أو عنصر تحكم ActiveX، أو الصورة.

لمعرفة المزيد، قم بزيارةالعمل مع الأشكال مقالة توثيقية.

public sealed class Shape : ShapeBase

المنشئون

اسموصف
Shape(DocumentBaseShapeType)إنشاء كائن شكل جديد.

الخصائص

اسموصف
AllowOverlap { get; set; }الحصول على أو تعيين القيمة التي تحدد ما إذا كان هذا الشكل يمكن أن يتداخل مع الأشكال الأخرى.
AlternativeText { get; set; }تحديد النص البديل الذي سيتم عرضه بدلاً من الرسم.
AnchorLocked { get; set; }يحدد ما إذا كان رابط الشكل مقفلاً أم لا.
AspectRatioLocked { get; set; }يحدد ما إذا كانت نسبة العرض إلى الارتفاع للشكل مقفلة أم لا.
BehindText { get; set; }يحدد ما إذا كان الشكل أسفل النص أو فوقه.
Bottom { get; }الحصول على موضع الحافة السفلية للكتلة التي تحتوي على الشكل.
Bounds { get; set; }الحصول على أو تعيين موقع وحجم الكتلة التي تحتوي على الشكل.
BoundsInPoints { get; }الحصول على موقع وحجم الكتلة التي تحتوي على الشكل بالنقاط، بالنسبة إلى نقطة ارتساء الشكل العلوي.
BoundsWithEffects { get; }الحصول على المدى النهائي لكائن الشكل هذا بعد تطبيق تأثيرات الرسم. يتم قياس القيمة بالنقاط.
CanHaveImage { get; }إرجاعحقيقي إذا كان نوع الشكل يسمح للشكل بأن يكون له صورة.
Chart { get; }يوفر الوصول إلى خصائص المخطط إذا كان هذا الشكل يحتوي علىChart .
CoordOrigin { get; set; }الإحداثيات في الزاوية العلوية اليسرى للكتلة التي تحتوي على هذا الشكل.
CoordSize { get; set; }عرض وارتفاع مساحة الإحداثيات داخل الكتلة المحتوية على هذا الشكل.
Count { get; }يحصل على عدد الأطفال المباشرين لهذه العقدة.
CustomNodeId { get; set; }يحدد معرف العقدة المخصصة.
DistanceBottom { get; set; }إرجاع أو تعيين المسافة (بالنقاط) بين نص المستند والحافة السفلية للشكل.
DistanceLeft { get; set; }إرجاع أو تعيين المسافة (بالنقاط) بين نص المستند والحافة اليسرى للشكل.
DistanceRight { get; set; }إرجاع أو تعيين المسافة (بالنقاط) بين نص المستند والحافة اليمنى للشكل.
DistanceTop { get; set; }إرجاع أو تعيين المسافة (بالنقاط) بين نص المستند والحافة العلوية للشكل.
virtual Document { get; }الحصول على المستند الذي تنتمي إليه هذه العقدة.
ExtrusionEnabled { get; }إرجاعحقيقي إذا تم تمكين تأثير البثق.
Fill { get; }الحصول على تنسيق التعبئة للشكل.
FillColor { get; set; }يحدد لون الفرشاة الذي يملأ المسار المغلق للشكل.
Filled { get; set; }تحديد ما إذا كان سيتم ملء المسار المغلق للشكل أم لا.
FirstChild { get; }يحصل على الطفل الأول للعقدة.
FirstParagraph { get; }الحصول على الفقرة الأولى في الشكل.
FlipOrientation { get; set; }تبديل اتجاه الشكل.
Font { get; }يوفر الوصول إلى تنسيق الخط لهذا الكائن.
HasChart { get; }إرجاعحقيقي اذا هذاShape لديهChart .
HasChildNodes { get; }إرجاعحقيقي إذا كانت هذه العقدة تحتوي على أي عقد فرعية.
HasImage { get; }إرجاعحقيقي إذا كان الشكل يحتوي على بايتات صورة أو يربط صورة.
HasSmartArt { get; }إرجاعحقيقي اذا هذاShape يحتوي على كائن SmartArt.
Height { get; set; }الحصول على أو تعيين ارتفاع الكتلة التي تحتوي على الشكل.
HeightRelative { get; set; }الحصول على أو تعيين القيمة التي تمثل النسبة المئوية للارتفاع النسبي للشكل.
HorizontalAlignment { get; set; }يحدد كيفية وضع الشكل أفقيًا.
HorizontalRuleFormat { get; }يوفر الوصول إلى خصائص شكل القاعدة الأفقية. بالنسبة للشكل الذي لا يمثل قاعدة أفقية، يتم إرجاعهباطل .
HRef { get; set; }الحصول على عنوان الارتباط التشعبي الكامل للشكل أو تعيينه.
ImageData { get; }يوفر الوصول إلى صورة الشكل. إرجاعباطل إذا كان الشكل لا يمكن أن يحتوي على صورة.
override IsComposite { get; }إرجاعحقيقي لأن هذه العقدة يمكن أن تحتوي على عقد فرعية.
IsDecorative { get; set; }الحصول على أو تعيين العلامة التي تحدد ما إذا كان الشكل مزخرفًا في المستند.
IsDeleteRevision { get; }إرجاع صحيح إذا تم حذف هذا الكائن في Microsoft Word أثناء تمكين تعقب التغييرات.
IsGroup { get; }إرجاعحقيقي إذا كان هذا شكل مجموعة.
IsHorizontalRule { get; }إرجاعحقيقي إذا كان هذا الشكل مسطرة أفقية.
IsImage { get; }إرجاعحقيقي إذا كان هذا الشكل عبارة عن شكل صورة.
IsInline { get; }طريقة سريعة لتحديد ما إذا كان هذا الشكل تم وضعه سطريًا مع النص.
IsInsertRevision { get; }إرجاع صحيح إذا تم إدراج هذا الكائن في Microsoft Word أثناء تمكين تعقب التغييرات.
IsLayoutInCell { get; set; }الحصول على أو تعيين علامة تشير إلى ما إذا كان الشكل معروضًا داخل الجدول أم خارجه.
IsMoveFromRevision { get; }إرجاعحقيقي إذا تم نقل هذا الكائن (حذفه) في Microsoft Word أثناء تمكين تعقب التغييرات.
IsMoveToRevision { get; }إرجاعحقيقي إذا تم نقل هذا الكائن (إدراجه) في Microsoft Word أثناء تمكين تعقب التغييرات.
IsSignatureLine { get; }يشير إلى أن الشكل هو أSignatureLine .
IsTopLevel { get; }إرجاعحقيقيإذا لم يكن هذا الشكل تابعًا لشكل المجموعة.
IsWordArt { get; }إرجاعحقيقي إذا كان هذا الشكل عبارة عن كائن WordArt.
LastChild { get; }يحصل على الطفل الأخير للعقدة.
LastParagraph { get; }الحصول على الفقرة الأخيرة في الشكل.
Left { get; set; }الحصول على أو تعيين موضع الحافة اليسرى للكتلة التي تحتوي على الشكل.
LeftRelative { get; set; }الحصول على أو تعيين القيمة التي تمثل الموضع الأيسر النسبي للشكل بالنسبة المئوية.
MarkupLanguage { get; }يحصل على لغة الترميز المستخدمة لهذا الكائن الرسومي.
Name { get; set; }الحصول على اسم الشكل الاختياري أو تعيينه.
NextSibling { get; }يحصل على العقدة التي تلي هذه العقدة مباشرة.
override NodeType { get; }إرجاعShape .
OleFormat { get; }يوفر الوصول إلى بيانات OLE الخاصة بالشكل. بالنسبة للشكل الذي لا يعد كائن OLE أو عنصر تحكم ActiveX، يتم إرجاعهباطل .
ParentNode { get; }يحصل على الأصل المباشر لهذه العقدة.
ParentParagraph { get; }إرجاع الفقرة الأصلية المباشرة.
PreviousSibling { get; }يحصل على العقدة التي تسبق هذه العقدة مباشرة.
Range { get; }إرجاع أRange الكائن الذي يمثل جزء المستند الموجود في هذه العقدة.
RelativeHorizontalPosition { get; set; }يحدد نسبة إلى ما يتم وضعه أفقيًا.
RelativeHorizontalSize { get; set; }الحصول على أو تعيين قيمة الحجم النسبي للشكل في الاتجاه الأفقي.
RelativeVerticalPosition { get; set; }يحدد نسبة إلى موضع الشكل عموديًا.
RelativeVerticalSize { get; set; }الحصول على أو تعيين قيمة الحجم النسبي للشكل في الاتجاه الرأسي.
Right { get; }الحصول على موضع الحافة اليمنى للكتلة التي تحتوي على الشكل.
Rotation { get; set; }تحدد الزاوية (بالدرجات) التي يتم تدوير الشكل بها. القيمة الموجبة تتوافق مع زاوية الدوران في اتجاه عقارب الساعة.
ScreenTip { get; set; }تحديد النص المعروض عندما يتحرك مؤشر الماوس فوق الشكل.
ShadowEnabled { get; }إرجاعحقيقي إذا تم تمكين تأثير الظل.
ShadowFormat { get; }الحصول على تنسيق الظل للشكل.
ShapeType { get; }الحصول على نوع الشكل.
SignatureLine { get; }يحصلSignatureLine كائن إذا كان الشكل عبارة عن خط توقيع. عائداتباطل وإلا.
SizeInPoints { get; }الحصول على حجم الشكل بالنقاط.
StoryType { get; }إرجاعTextbox .
Stroke { get; }يحدد حد الشكل.
StrokeColor { get; set; }يحدد لون الحد.
Stroked { get; set; }يحدد ما إذا كان سيتم تحديد المسار أم لا.
StrokeWeight { get; set; }يحدد سمك الفرشاة الذي يحدد مسار الشكل بالنقاط.
Target { get; set; }الحصول على الإطار المستهدف للارتباط التشعبي للشكل أو تعيينه.
TextBox { get; }يحدد السمات التي تحدد كيفية عرض النص في الشكل.
TextPath { get; }يحدد نص مسار النص (لكائن WordArt).
Title { get; set; }الحصول على أو تعيين العنوان (التسمية التوضيحية) لكائن الشكل الحالي.
Top { get; set; }الحصول على أو تعيين موضع الحافة العلوية للكتلة التي تحتوي على الشكل.
TopRelative { get; set; }الحصول على أو تعيين القيمة التي تمثل الموضع العلوي النسبي للشكل بالنسبة المئوية.
VerticalAlignment { get; set; }يحدد كيفية وضع الشكل عموديًا.
Width { get; set; }الحصول على أو تعيين عرض الكتلة التي تحتوي على الشكل.
WidthRelative { get; set; }الحصول على أو تعيين القيمة التي تمثل النسبة المئوية للعرض النسبي للشكل.
WrapSide { get; set; }يحدد كيفية التفاف النص حول الشكل.
WrapType { get; set; }يحدد ما إذا كان الشكل سطريًا أم عائمًا. للأشكال العائمة يحدد وضع الالتفاف للنص حول الشكل.
ZOrder { get; set; }تحديد ترتيب عرض الأشكال المتداخلة.

طُرق

اسموصف
override Accept(DocumentVisitor)يقبل الزائر.
AdjustWithEffects(RectangleF)يضيف إلى قيم المستطيل المصدر لمدى التأثير ويعيد المستطيل النهائي.
AppendChild(Node)إضافة العقدة المحددة إلى نهاية قائمة العقد التابعة لهذه العقدة.
Clone(bool)إنشاء نسخة مكررة من العقدة.
CreateNavigator()إنشاء متصفح يمكن استخدامه لاجتياز العقد وقراءتها.
FetchInheritedShapeAttr(int)محجوز لاستخدام النظام. IShapeAttrSource.
FetchShapeAttr(int)محجوز لاستخدام النظام. IShapeAttrSource.
GetAncestor(NodeType)يحصل على السلف الأول للمحددNodeType .
GetAncestor(Type)الحصول على السلف الأول لنوع الكائن المحدد.
GetChild(NodeType, int, bool)إرجاع العقدة الفرعية N التي تطابق النوع المحدد.
GetChildNodes(NodeType, bool)إرجاع مجموعة مباشرة من العقد الفرعية التي تطابق النوع المحدد.
GetDirectShapeAttr(int)محجوز لاستخدام النظام. IShapeAttrSource.
GetEnumerator()يوفر الدعم لتكرار كل نمط عبر العقد الفرعية لهذه العقدة.
GetShapeRenderer()إنشاء وإرجاع كائن يمكن استخدامه لتحويل هذا الشكل إلى صورة.
override GetText()الحصول على نص هذه العقدة وجميع أبنائها.
IndexOf(Node)إرجاع فهرس العقدة الفرعية المحددة في صفيف العقدة الفرعية.
InsertAfter(NodeNode)يقوم بإدراج العقدة المحددة مباشرة بعد العقدة المرجعية المحددة.
InsertBefore(NodeNode)يقوم بإدراج العقدة المحددة مباشرة قبل العقدة المرجعية المحددة.
LocalToParent(PointF)تحويل قيمة من المساحة الإحداثية المحلية إلى المساحة الإحداثية للشكل الأصلي.
NextPreOrder(Node)الحصول على العقدة التالية وفقًا لخوارزمية اجتياز شجرة الطلب المسبق.
PrependChild(Node)إضافة العقدة المحددة إلى بداية قائمة العقد التابعة لهذه العقدة.
PreviousPreOrder(Node)الحصول على العقدة السابقة وفقًا لخوارزمية اجتياز شجرة الطلب المسبق.
Remove()يزيل نفسه من الأصل.
RemoveAllChildren()إزالة جميع العقد الفرعية للعقدة الحالية.
RemoveChild(Node)إزالة العقدة الفرعية المحددة.
RemoveShapeAttr(int)محجوز لاستخدام النظام. IShapeAttrSource.
RemoveSmartTags()يزيل الكلSmartTagالعقد التابعة للعقدة الحالية.
SelectNodes(string)تحديد قائمة العقد المطابقة لتعبير XPath.
SelectSingleNode(string)تحديد الأولNode الذي يطابق تعبير XPath.
SetShapeAttr(int, object)محجوز لاستخدام النظام. IShapeAttrSource.
ToString(SaveFormat)تصدير محتوى العقدة إلى سلسلة بالتنسيق المحدد.
ToString(SaveOptions)تصدير محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة.
UpdateSmartArtDrawing()يقوم بتحديث رسم SmartArt المعروض مسبقًا باستخدام محرك العرض البارد SmartArt الخاص بـ Aspose.Words.

ملاحظات

باستخدامShape يمكنك إنشاء أو تعديل الأشكال في مستند Microsoft Word.

خاصية مهمة للشكل هيShapeTypeيمكن أن تحتوي الأشكال ذات الأنواع المختلفة على إمكانات مختلفة في مستند Word. على سبيل المثال، يمكن أن تحتوي الصور وأشكال OLE فقط على صور بداخلها. يمكن أن تحتوي معظم الأشكال على نص، ولكن ليس كلها.

الأشكال التي يمكن أن تحتوي على نص، يمكن أن تحتوي علىParagraph و Table العقد كأطفال.

أمثلة

يوضح كيفية إدراج صورة عائمة في وسط الصفحة.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// أدخل صورة عائمة ستظهر خلف النص المتداخل وقم بمحاذاتها مع منتصف الصفحة.
Shape shape = builder.InsertImage(ImageDir + "Logo.jpg");
shape.WrapType = WrapType.None;
shape.BehindText = true;
shape.RelativeHorizontalPosition = RelativeHorizontalPosition.Page;
shape.RelativeVerticalPosition = RelativeVerticalPosition.Page;
shape.HorizontalAlignment = HorizontalAlignment.Center;
shape.VerticalAlignment = VerticalAlignment.Center;

doc.Save(ArtifactsDir + "Image.CreateFloatingPageCenter.docx");

يوضح كيفية استخراج الصور من مستند وحفظها في نظام الملفات المحلي كملفات فردية.

Document doc = new Document(MyDir + "Images.docx");

// احصل على مجموعة الأشكال من المستند،
// وحفظ بيانات الصورة لكل شكل مع صورة كملف في نظام الملفات المحلي.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);

Assert.AreEqual(9, shapes.Count(s => ((Shape)s).HasImage));

int imageIndex = 0;
foreach (Shape shape in shapes.OfType<Shape>())
{
    if (shape.HasImage)
    {
         // قد تحتوي بيانات صورة الأشكال على صور للعديد من تنسيقات الصور الممكنة.
        // يمكننا تحديد امتداد الملف لكل صورة تلقائيًا، بناءً على تنسيقها.
        string imageFileName =
            $"File.ExtractImages.{imageIndex}{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}";
        shape.ImageData.Save(ArtifactsDir + imageFileName);
        imageIndex++;
    }
}

يوضح كيفية حذف كافة الأشكال من مستند.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// أدخل شكلين مع شكل مجموعة بداخله شكل آخر.
builder.InsertShape(ShapeType.Rectangle, 400, 200);
builder.InsertShape(ShapeType.Star, 300, 300);

GroupShape group = new GroupShape(doc);
group.Bounds = new RectangleF(100, 50, 200, 100);
group.CoordOrigin = new Point(-1000, -500);

Shape subShape = new Shape(doc, ShapeType.Cube);
subShape.Width = 500;
subShape.Height = 700;
subShape.Left = 0;
subShape.Top = 0;

group.AppendChild(subShape);
builder.InsertNode(group);

Assert.AreEqual(3, doc.GetChildNodes(NodeType.Shape, true).Count);
Assert.AreEqual(1, doc.GetChildNodes(NodeType.GroupShape, true).Count);

// قم بإزالة جميع عقد الشكل من المستند.
NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true);
shapes.Clear();

// اختفت جميع الأشكال، لكن شكل المجموعة لا يزال موجودًا في المستند.
Assert.AreEqual(1, doc.GetChildNodes(NodeType.GroupShape, true).Count);
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

// قم بإزالة جميع أشكال المجموعة بشكل منفصل.
NodeCollection groupShapes = doc.GetChildNodes(NodeType.GroupShape, true);
groupShapes.Clear();

Assert.AreEqual(0, doc.GetChildNodes(NodeType.GroupShape, true).Count);
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

أنظر أيضا