Shape

Shape class

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

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

public sealed class Shape : ShapeBase

المنشئون

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

الخصائص

اسموصف
Adjustments { get; }يوفر الوصول إلى قيم التعديل الخام لشكل ما. بالنسبة للشكل الذي لا يحتوي على أي قيم تعديل خام، فإنه يعيد مجموعة فارغة.
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; }يوفر الوصول إلى تنسيق الخط لهذا الكائن.
Glow { get; }يحصل على تنسيق التوهج للشكل.
HasChart { get; }إرجاعحقيقي إذا كان هذاShape لديهChart .
HasChildNodes { get; }إرجاعحقيقي إذا كانت هذه العقدة تحتوي على أي عقد فرعية.
HasImage { get; }إرجاعحقيقي إذا كان الشكل يحتوي على بايتات صورة أو روابط صورة.
HasSmartArt { get; }إرجاعحقيقي إذا كان هذاShape لديه كائن SmartArt.
Height { get; set; }يحصل على ارتفاع الكتلة التي تحتوي على الشكل أو يعينه.
HeightRelative { get; set; }يحصل على القيمة التي تمثل النسبة المئوية للارتفاع النسبي للشكل أو يعينها.
Hidden { 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; }يحصل على MarkupLanguage المستخدم لهذا الكائن الرسومي.
Name { get; set; }يحصل على اسم الشكل الاختياري أو يعينه.
NextSibling { get; }يحصل على العقدة التي تلي هذه العقدة مباشرة.
override NodeType { get; }إرجاعShape .
OleFormat { get; }يوفر الوصول إلى بيانات OLE الخاصة بالشكل. بالنسبة للشكل الذي ليس كائن OLE أو عنصر تحكم ActiveX، يُرجعباطل .
ParentNode { get; }يحصل على الوالد المباشر لهذه العقدة.
ParentParagraph { get; }إرجاع الفقرة الأصلية المباشرة.
PreviousSibling { get; }يحصل على العقدة التي تسبق هذه العقدة مباشرةً.
Range { get; }يعيدRangeالكائن الذي يمثل الجزء من المستند الموجود في هذه العقدة.
Reflection { get; }يحصل على تنسيق الانعكاس للشكل.
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; }يحصل على حجم الشكل بالنقاط.
SoftEdge { 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)يقبل زائرًا.
override AcceptEnd(DocumentVisitor)يقبل زائرًا لزيارة نهاية الشكل.
override AcceptStart(DocumentVisitor)يقبل زائرًا لزيارة بداية الشكل.
AdjustWithEffects(RectangleF)يضيف إلى قيم المستطيل المصدر لمدى التأثير ويعيد المستطيل النهائي.
AppendChild<T>(T)يضيف العقدة المحددة إلى نهاية قائمة العقد الفرعية لهذه العقدة.
Clone(bool)ينشئ نسخة مكررة من العقدة.
CreateNavigator()ينشئ متصفحًا يمكن استخدامه للتنقل بين العقد وقراءتها.
GetAncestor(NodeType)يحصل على السلف الأول للعنصر المحددNodeType .
GetAncestor(Type)يحصل على السلف الأول لنوع الكائن المحدد.
GetChild(NodeType, int, bool)يعيد عقدة فرعية رقم N تطابق النوع المحدد.
GetChildNodes(NodeType, bool)يعيد مجموعة حية من العقد الفرعية التي تطابق النوع المحدد.
GetEnumerator()يوفر الدعم لكل تكرار للأسلوب على العقد الفرعية لهذه العقدة.
GetShapeRenderer()ينشئ ويعيد كائنًا يمكن استخدامه لتحويل هذا الشكل إلى صورة.
override GetText()يحصل على نص هذه العقدة وجميع أبنائها.
IndexOf(Node)يعيد مؤشر العقدة الفرعية المحددة في مجموعة العقد الفرعية.
InsertAfter<T>(T, Node)يقوم بإدراج العقدة المحددة فورًا بعد عقدة المرجع المحددة.
InsertBefore<T>(T, Node)يقوم بإدراج العقدة المحددة مباشرة قبل عقدة المرجع المحددة.
LocalToParent(PointF)يحول قيمة من مساحة الإحداثيات المحلية إلى مساحة الإحداثيات للشكل الأصلي.
NextPreOrder(Node)يحصل على العقدة التالية وفقًا لخوارزمية عبور شجرة الترتيب المسبق.
PrependChild<T>(T)يضيف العقدة المحددة إلى بداية قائمة العقد الفرعية لهذه العقدة.
PreviousPreOrder(Node)يحصل على العقدة السابقة وفقًا لخوارزمية عبور شجرة الترتيب المسبق.
Remove()يزيل نفسه من الأصل.
RemoveAllChildren()يزيل جميع العقد الفرعية للعقدة الحالية.
RemoveChild<T>(T)يزيل العقدة الفرعية المحددة.
RemoveSmartTags()يزيل الكلSmartTag العقد المنحدرة من العقدة الحالية.
SelectNodes(string)يحدد قائمة العقد المطابقة لتعبير XPath.
SelectSingleNode(string)يحدد الأولNode الذي يتطابق مع تعبير XPath.
ToString(SaveFormat)يصدر محتوى العقدة إلى سلسلة بالتنسيق المحدد.
ToString(SaveOptions)يقوم بتصدير محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة.
UpdateSmartArtDrawing()تحديث الرسم الذي تم تقديمه مسبقًا بتقنية SmartArt باستخدام محرك التقديم البارد SmartArt الخاص بـ Aspose.Words.

ملاحظات

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

من الخصائص المهمة للشكل هوShapeTypeيمكن أن تحتوي الأشكال من أنواع مختلفة من x000d_ على إمكانيات مختلفة في مستند 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);

أنظر أيضا