# مدیریت گره‌های شکل SmartArt در ارائه‌ها با استفاده از C++

> مدیریت گره‌های شکل SmartArt در فایل‌های PPT و PPTX با Aspose.Slides برای C++. نمونه‌های کد واضح و نکاتی برای بهینه‌سازی ارائه‌های شما دریافت کنید.

Source: https://docs.aspose.com/slides/fa/cpp/manage-smartart-shape-node/
Updated: 2026-06-13

## **نمای کلی**

گرافیک‌های SmartArt در ارائه‌های PowerPoint از طریق گره‌هایی که متن را شامل می‌شوند و ساختار نمودار را تعریف می‌کنند، سازماندهی می‌شوند. Aspose.Slides به شما امکان می‌دهد که به‌صورت برنامه‌نویسی با این گره‌های SmartArt کار کنید: افزودن گره‌ها و گره‌های فرزند جدید، درج گره‌های فرزند در موقعیت خاص، دسترسی به گره‌های موجود و خواندن متن، سطح و موقعیت آن‌ها.

این مقاله توضیح می‌دهد که چگونه گره‌های شکل SmartArt را مدیریت کنید. این مقاله نحوه حذف گره‌ها، کار با گره‌های فرزند بر اساس اندیس یا موقعیت، تغییر گرهٔ معاون به گرهٔ عادی، تنظیم موقعیت، اندازه و چرخش شکل‌های گره SmartArt، تنظیم قالب پر کردن گره و تولید تصویر کوچک برای گرهٔ فرزند SmartArt را نشان می‌دهد.

## **افزودن گره SmartArt**
Aspose.Slides برای C++ ساده‌ترین API را برای مدیریت اشکال SmartArt به آسان‌ترین روش فراهم کرده است. کد نمونه زیر به شما کمک می‌کند گره و گره فرزند را داخل شکل SmartArt اضافه کنید.

- یک نمونه از کلاس [Presentation](https://reference.aspose.com/slides/fa/cpp/aspose.slides/presentation/) ایجاد کنید و ارائه را با شکل SmartArt بارگذاری کنید.
- مرجع اسلاید اول را با استفاده از ایندکس آن دریافت کنید.
- در تمام اشکال داخل اسلاید اول عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و در صورت بودن، شکل انتخابی را به SmartArt تبدیل (Typecast) کنید.
- یک گرهٔ جدید در NodeCollection شکل SmartArt اضافه کنید و متن را در TextFrame تنظیم کنید.
- سپس، یک گرهٔ فرزند در گرهٔ تازه اضافه شدهٔ SmartArt اضافه کنید و متن را در TextFrame تنظیم کنید.
- ارائه را ذخیره کنید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-AddNodes-AddNodes.cpp" >}}

## **افزودن گره SmartArt در موقعیت خاص**
در کد نمونه زیر توضیح داده‌ایم که چگونه گره‌های فرزند مربوط به گره‌های مختلف شکل SmartArt را در موقعیت خاصی اضافه کنیم.

- یک نمونه از کلاس `Presentation` ایجاد کنید.
- مرجع اسلاید اول را با استفاده از ایندکس آن دریافت کنید.
- یک شکل SmartArt از نوع StackedList را به اسلاید دسترسی شده اضافه کنید.
- به اولین گره در شکل SmartArt اضافه شده دسترسی پیدا کنید.
- سپس، گرهٔ فرزند برای گره انتخاب شده را در موقعیت ۲ اضافه کنید و متن آن را تنظیم کنید.
- ارائه را ذخیره کنید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-AddNodesSpecificPosition-AddNodesSpecificPosition.cpp" >}}

## **دسترس‌گیری به گره SmartArt**
کد نمونه زیر به شما کمک می‌کند به گره‌های داخل شکل SmartArt دسترسی داشته باشید. لطفاً توجه داشته باشید که نمی‌توانید LayoutType را برای SmartArt تغییر دهید زیرا این ویژگی فقط برای خواندن است و فقط هنگام افزودن شکل SmartArt تنظیم می‌شود.

- یک نمونه از کلاس `Presentation` ایجاد کنید و ارائه را با شکل SmartArt بارگذاری کنید.
- مرجع اسلاید اول را با استفاده از ایندکس آن دریافت کنید.
- در تمام اشکال داخل اسلاید اول عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و در صورت بودن، شکل انتخابی را به SmartArt تبدیل کنید.
- در تمام گره‌های داخل شکل SmartArt عبور کنید.
- به اطلاعاتی مانند موقعیت گره SmartArt، سطح و متن دسترسی پیدا کنید و آن‌ها را نمایش دهید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-AccessSmartArt-AccessSmartArt.cpp" >}}

## **دسترس‌گیری به گره فرزند SmartArt**
کد نمونه زیر به شما کمک می‌کند به گره‌های فرزند مربوط به گره‌های مختلف شکل SmartArt دسترسی پیدا کنید.

- یک نمونه از کلاس PresentationEx ایجاد کنید و ارائه را با شکل SmartArt بارگذاری کنید.
- مرجع اسلاید اول را با استفاده از ایندکس آن دریافت کنید.
- در تمام اشکال داخل اسلاید اول عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و در صورت بودن، شکل انتخابی را به SmartArtEx تبدیل کنید.
- در تمام گره‌های داخل شکل SmartArt عبور کنید.
- برای هر گرهٔ انتخاب شدهٔ شکل SmartArt، در تمام گره‌های فرزند داخل آن گره خاص عبور کنید.
- به اطلاعاتی مانند موقعیت گرهٔ فرزند، سطح و متن دسترسی پیدا کنید و آن‌ها را نمایش دهید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-AccessChildNodes-AccessChildNodes.cpp" >}}

## **دسترس‌گیری به گره فرزند SmartArt در موقعیت خاص**
کد نمونه زیر به شما کمک می‌کند به گره‌های فرزند در موقعیت خاصی که مربوط به گره‌های مختلف شکل SmartArt هستند، دسترسی پیدا کنید.

- یک نمونه از کلاس `Presentation` ایجاد کنید.
- مرجع اسلاید اول را با استفاده از ایندکس آن دریافت کنید.
- یک شکل SmartArt از نوع StackedList اضافه کنید.
- به شکل SmartArt اضافه شده دسترسی پیدا کنید.
- به گرهٔ با ایندکس ۰ برای شکل SmartArt دسترسی یافته دسترسی پیدا کنید.
- سپس، با استفاده از متد GetNodeByPosition()، گرهٔ فرزند در موقعیت ۱ برای گرهٔ SmartArt دسترسی یافته را دسترسی پیدا کنید.
- به اطلاعاتی مانند موقعیت گرهٔ فرزند، سطح و متن دسترسی پیدا کنید و آن‌ها را نمایش دهید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-AccessChildNodeSpecificPosition-AccessChildNodeSpecificPosition.cpp" >}}

## **حذف گره SmartArt**
در این مثال، نحوه حذف گره‌های داخل شکل SmartArt را یاد می‌گیریم.

- یک نمونه از کلاس `Presentation` ایجاد کنید و ارائه را با شکل SmartArt بارگذاری کنید.
- مرجع اسلاید اول را با استفاده از ایندکس آن دریافت کنید.
- در تمام اشکال داخل اسلاید اول عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و در صورت بودن، شکل انتخابی را به SmartArt تبدیل کنید.
- بررسی کنید آیا SmartArt بیش از ۰ گره دارد.
- گرهٔ SmartArt که باید حذف شود را انتخاب کنید.
- سپس، گرهٔ انتخاب شده را با استفاده از متد RemoveNode() حذف کنید* ارائه را ذخیره کنید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-RemoveNode-RemoveNode.cpp" >}}

## **حذف گره SmartArt در موقعیت خاص**
در این مثال، نحوه حذف گره‌ها داخل شکل SmartArt در موقعیت خاصی را می‌آموزیم.

- یک نمونه از کلاس `Presentation` ایجاد کنید و ارائه را با شکل SmartArt بارگذاری کنید.
- مرجع اسلاید اول را با استفاده از ایندکس آن دریافت کنید.
- در تمام اشکال داخل اسلاید اول عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و در صورت بودن، شکل انتخابی را به SmartArt تبدیل کنید.
- گرهٔ شکل SmartArt با ایندکس ۰ را انتخاب کنید.
- سپس، بررسی کنید آیا گرهٔ انتخاب شدهٔ SmartArt بیش از ۲ گرهٔ فرزند دارد.
- سپس، گره را در موقعیت ۱ با استفاده از متد RemoveNodeByPosition() حذف کنید.
- ارائه را ذخیره کنید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-RemoveNodeSpecificPosition-RemoveNodeSpecificPosition.cpp" >}}

## **تنظیم موقعیت سفارشی برای گره فرزند SmartArt**
اکنون Aspose.Slides از تنظیم ویژگی‌های X و Y برای SmartArtShape پشتیبانی می‌کند. قطعه کد زیر نشان می‌دهد چگونه موقعیت، اندازه و چرخش سفارشی برای SmartArtShape تنظیم شود. همچنین لطفاً توجه داشته باشید که افزودن گره‌های جدید باعث بازمحاسبه موقعیت و اندازه همه گره‌ها می‌شود.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-CustomChildNodesInSmartArt-CustomChildNodesInSmartArt.cpp" >}}

## **بررسی گرهٔ معاون**
در کد نمونه زیر بررسی می‌کنیم چگونه گره‌های معاون را در مجموعه گره‌های SmartArt شناسایی کرده و آن‌ها را تغییر دهیم.

- یک نمونه از کلاس PresentationEx ایجاد کنید و ارائه را با شکل SmartArt بارگذاری کنید.
- مرجع اسلاید دوم را با استفاده از ایندکس آن دریافت کنید.
- در تمام اشکال داخل اسلاید اول عبور کنید.
- بررسی کنید آیا شکل از نوع SmartArt است و در صورت بودن، شکل انتخابی را به SmartArtEx تبدیل کنید.
- در تمام گره‌های داخل شکل SmartArt عبور کنید و بررسی کنید آیا آنها گره‌های معاون هستند.
- وضعیت گرهٔ معاون را به گرهٔ عادی تغییر دهید.
- ارائه را ذخیره کنید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-AssistantNode-AssistantNode.cpp" >}}

## **تنظیم قالب پر کردن گره**
Aspose.Slides برای C++ امکان افزودن اشکال سفارشی SmartArt و تنظیم قالب پر کردن آن‌ها را فراهم می‌کند. این مقاله توضیح می‌دهد چگونه اشکال SmartArt را ایجاد و دسترسی داشته باشید و قالب پر کردن آن‌ها را با استفاده از Aspose.Slides برای C++ تنظیم کنید.

- یک نمونه از کلاس `Presentation` ایجاد کنید.
- مرجع یک اسلاید را با استفاده از ایندکس آن دریافت کنید.
- یک شکل SmartArt را با تنظیم LayoutType آن اضافه کنید.
- قالب FillFormat را برای گره‌های شکل SmartArt تنظیم کنید.
- ارائهٔ اصلاح‌شده را به صورت فایل PPTX بنویسید.

{{< gist "aspose-slides" "a690df625dc0b1fff869ab198affe7a4" "Examples-SlidesCPP-FillFormatSmartArtShapeNode-FillFormatSmartArtShapeNode.cpp" >}}

## **تولید تصویر کوچک گره فرزند SmartArt**
توسعه‌دهندگان می‌توانند تصویر کوچک گرهٔ فرزند یک SmartArt را با دنبال کردن مراحل زیر تولید کنند:

1. یک نمونه از کلاس `Presentation` که فایل PPTX را نمایندگی می‌کند ایجاد کنید.
2. SmartArt را اضافه کنید.
3. مرجع یک گره را با استفاده از ایندکس آن دریافت کنید
4. تصویر کوچک را دریافت کنید.
5. تصویر کوچک را در هر فرمت تصویری دلخواه ذخیره کنید.

مثال زیر یک تصویر کوچک از گرهٔ فرزند SmartArt تولید می‌کند

```cpp
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);

auto smartArt = slide->get_Shapes()->AddSmartArt(10, 10, 400, 300, SmartArtLayoutType::BasicCycle);
auto node = smartArt->get_Node(1);

auto image = node->get_Shape(0)->GetImage();
image->Save(u"SmartArt_ChildNote_Thumbnail_out.jpeg", ImageFormat::Png);
image->Dispose();

presentation->Dispose();
```

## **پرسش‌های متداول**

**آیا انیمیشن SmartArt پشتیبانی می‌شود؟**

بله. SmartArt به‌عنوان یک شکل معمولی در نظر گرفته می‌شود، بنابراین می‌توانید [انیمیشن‌های استاندارد](/slides/fa/cpp/shape-animation/) (ورودی، خروجی، تأکیدی، مسیرهای حرکتی) را اعمال کنید و زمان‌بندی را تنظیم نمایید. همچنین می‌توانید در صورت نیاز، اشکال داخل گره‌های SmartArt را نیز انیمیشن کنید.

**چگونه می‌توانم به‌صورت قابل اعتماد یک SmartArt خاص را در اسلاید پیدا کنم اگر شناسه داخلی آن ناشناخته باشد؟**

با اختصاص و جستجو بر اساس [متن جایگزین](https://reference.aspose.com/slides/fa/cpp/aspose.slides/shape/set_alternativetext/) می‌توانید این کار را انجام دهید. تنظیم یک AltText متمایز بر روی SmartArt به شما امکان می‌دهد که آن را به‌صورت برنامه‌نویسی پیدا کنید بدون نیاز به شناسه‌های داخلی.

**آیا ظاهر SmartArt هنگام تبدیل ارائه به PDF حفظ می‌شود؟**

بله. Aspose.Slides SmartArt را با دقت بصری بالا در هنگام [صادرات PDF](/slides/fa/cpp/convert-powerpoint-to-pdf/) رندر می‌کند و طرح، رنگ‌ها و افکت‌ها را حفظ می‌نماید.

**آیا می‌توانم تصویر کل SmartArt را استخراج کنم (برای پیش‌نمایش یا گزارش‌ها)؟**

بله. می‌توانید یک شکل SmartArt را به [فرمت‌های تصویر رستر](https://reference.aspose.com/slides/fa/cpp/aspose.slides/shape/getimage/) یا به [SVG](https://reference.aspose.com/slides/fa/cpp/aspose.slides/shape/writeassvg/) برای خروجی بردار مقیاس‌پذیر رندر کنید، که آن را برای تصویرهای کوچک، گزارش‌ها یا استفاده وب مناسب می‌سازد.
