Custom Frame Sample¶
نظرة عامة ¶
تتيح إضافة Custom Frame Sample إدارة الإطارات الأساسية داخل واجهة الرسم البياني لـ cTrader. وهي تتحكم في كيفية ظهور الإطارات المخصصة على الرسم البياني، مما يوفر طريقة بسيطة لتنظيم العناصر المرئية وتخصيص مساحة العمل الخاصة بك من خلال الوظائف الرئيسية التالية:
- إضافة إطار مخصص إلى واجهة الرسم البياني بنقرة واحدة.
- فصل الإطار أو إعادة إرفاقه لدعم تخطيطات الشاشات المتعددة وتكوينات مساحة العمل المرنة.
- إزالة الإطار عند عدم الحاجة إليه للحفاظ على منطقة الرسم البياني واضحة ومركزة.
- عرض كتلة نص مخصصة داخل الإطار لدعم التخصيص في الوقت الفعلي للرسم البياني والتغذية المرتدة المرئية.

تنشئ هذه الإضافة واجهة بسيطة في لوحة الرمز النشط تتيح لك إضافة إطار رسم بياني مخصص أو إزالته أو إرفاقه أو فصله. يؤدي كل زر إلى إجراء محدد، مما يسهل إدارة العناصر المرئية مباشرة على الرسم البياني. تعمل الإضافة فقط أثناء فتح cTrader Windows أو Mac وتتوقف تلقائيًا عند إغلاق المنصة.
إنشاء الإضافة ¶
تعرف على كيفية إنشاء وتحرير وبناء الإضافات من قالب أو من الصفر في دليلنا خطوة بخطوة.
يمكنك العثور على كود إضافة Custom Frame Sample على GitHub، أو ببساطة نسخه أدناه.
نموذج الكود
using System.Linq;
using cAlgo.API;
namespace cAlgo.Plugins
{
[Plugin(AccessRights = AccessRights.None)]
public class CustomFrameSample : Plugin
{
protected override void OnStart()
{
var aspBlock = Asp.SymbolTab.AddBlock("Custom Frame Sample");
var panel = new StackPanel();
var addCustomFrameButton = new Button { Text = "Add Custom Frame", Margin = 5 };
addCustomFrameButton.Click += OnAddCustomFrameButtonClick;
panel.AddChild(addCustomFrameButton);
var removeCustomFrameButton = new Button { Text = "Remove Custom Frame", Margin = 5 };
removeCustomFrameButton.Click += OnRemoveCustomFrameButtonClick;
panel.AddChild(removeCustomFrameButton);
var detachCustomFrameButton = new Button { Text = "Detach Custom Frame", Margin = 5 };
detachCustomFrameButton.Click += OnDetachCustomFrameButtonClick;
panel.AddChild(detachCustomFrameButton);
var attachCustomFrameButton = new Button { Text = "Attach Custom Frame", Margin = 5 };
attachCustomFrameButton.Click += OnAttachCustomFrameButtonClick;
panel.AddChild(attachCustomFrameButton);
aspBlock.Child = panel;
}
private void OnAttachCustomFrameButtonClick(ButtonClickEventArgs obj)
{
if (ChartManager.OfType<CustomFrame>().FirstOrDefault(c => !c.IsAttached) is not {} customFrame)
return;
customFrame.Attach();
}
private void OnDetachCustomFrameButtonClick(ButtonClickEventArgs obj)
{
if (ChartManager.OfType<CustomFrame>().FirstOrDefault(c => c.IsAttached) is not {} customFrame)
return;
customFrame.Detach();
}
private void OnRemoveCustomFrameButtonClick(ButtonClickEventArgs obj)
{
if (ChartManager.OfType<CustomFrame>().FirstOrDefault() is not {} customFrame)
return;
ChartManager.RemoveFrame(customFrame.Id);
}
private void OnAddCustomFrameButtonClick(ButtonClickEventArgs obj)
{
var customFrame = ChartManager.AddCustomFrame("Custom Frame");
customFrame.Child = new TextBlock
{
Text = $"Custom Frame {customFrame.Id} Child Control",
FontSize = 32,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center
};
}
}
}
خيارات التخصيص ¶
تتضمن Custom Frame Sample أزرار تحكم تتيح لك إضافة إطار مخصص والتفاعل معه وإزالته مباشرة على الرسم البياني. يوضح الجدول أدناه المكونات الرئيسية ووظائفها:
| المعلمة | الوصف | القيم الممكنة |
|---|---|---|
panel | إضافة أو إعادة ترتيب الأزرار لإجراءات إطار إضافية أو خيارات واجهة المستخدم. | stackpanel [panel] |
Text | تحرير نص الزر للوضوح. | Add custom frame, Remove custom frame, Detach custom frame, Attach custom frame |
Margin | تغيير الهوامش للتوازن البصري. | 5, 8, 12, إلخ. |
AddCustomFrame | تعديل عنوان الإطار ليعكس الغرض أو الرمز. | chartmanager.addcustomframe(Custom frame) |
TextBlock.Text | تغيير الرسالة لتعكس السياق أو المعرف. | Custom frame sample |
FontSize | ضبط الحجم للوضوح وملاءمة التخطيط. | 32, 36, 40, إلخ. |
HorizontalAlignment | ضبط المحاذاة لتغيير عرض المحتوى الأفقي. | horizontalalignment.center |
VerticalAlignment | ضبط المحاذاة لتغيير عرض المحتوى الرأسي. | verticalalignment.center |
Attach() | إضافة رسالة عند إعادة إرفاق الإطار بالرسم البياني. | customframe.attach() |
Detach() | إضافة رسالة عند فصل الإطار عن الرسم البياني. | customframe.detach() |
RemoveFrame | إعادة تسمية الزر ليعكس الغرض منه. | chartmanager.removeframe(customframe.id) |
حالات الاستخدام ¶
تتيح Custom Frame Sample إدارة الرسوم البيانية التفاعلية دون الحاجة إلى خدمات خارجية. توضح حالات الاستخدام التالية كيف يمكن للإضافة تحسين تجربة التداول.
| حالة الاستخدام | السيناريو | القيمة |
|---|---|---|
| تسليط الضوء على إشارات التداول | إضافة إطار برسالة مثل Watch for breakout on EURUSD. | يلفت الانتباه إلى تنبيهات محددة للرسم البياني أو ملاحظات المستخدم. |
| إدارة الشاشات المتعددة | فصل الإطارات ونقلها إلى شاشات أخرى. | يوسع رؤية الرسم البياني ويدعم إعدادات التداول متعددة الشاشات. |
| تنظيم مساحة العمل المخصصة | تنظيم منطقة الرسم البياني باستخدام الإطارات لتتناسب مع سير عمل التداول الشخصي الخاص بك. | يساعدك على تنظيم منطقة الرسم البياني بناءً على سير عمل التداول الشخصي الخاص بك. |
| علامات مرئية مخصصة | إضافة إطارات يدويًا مع ملاحظات لتسليط الضوء على أحداث الرسم البياني مثل إدخالات الأوامر. | توفر طريقة مرنة لتسمية النقاط الرئيسية على الرسم البياني دون رسومات دائمة. |
الملخص ¶
توفر هذه الإضافة طريقة عملية لإدارة الإطارات المخصصة مباشرة على الرسوم البيانية لـ cTrader. مع عناصر تحكم بسيطة لإضافة الإطارات وإزالتها وإرفاقها أو فصلها، فإنها تساعدك على تخصيص مساحة العمل الخاصة بك، وتسليط الضوء على المعلومات الرئيسية وتنظيم تخطيطات الرسوم البيانية بسهولة.
لمزيد من تفاصيل التطوير، راجع وثائق الإضافة الخاصة بنا.