يعد تركيب صندوق صور واحد على آخر إحدى المهام الأساسية التي يواجهها المطورون الذين يعملون مع العناصر الرسومية في ج#. يمكن أن يكون هذا مفيدا ، على سبيل المثال ، عند إنشاء واجهات مستخدم أو ألعاب معقدة.
من أجل تراكب صورة واحدةمربع على آخر ، تحتاج إلى استخدام قدرات مكتبة النظام.ويندوز.أشكال. يمكن اعتبار كل صندوق صور كعنصر تحكم منفصل ، والذي يمكن تعيين خصائص مختلفة مثل الموضع والحجم والصورة وغيرها.
لإنشاء تراكب ، إنشاء اثنين من الصورةمربعات وتعيين الخصائص المطلوبة لهم. ثم ، تحتاج إلى إضافتها إلى النموذج باستخدام عناصر التحكم.إضافة () طريقة. بعد ذلك ، يمكنك إجراء التعديلات اللازمة لتحقيق تأثير التراكب المطلوب ، على سبيل المثال ، تغيير شفافية أحد الصور أو تعيين موضعه بالنسبة إلى آخر.
وبالتالي ، فإن إنشاء تراكب لصورة واحدةمربع على آخر في ج# هي مهمة بسيطة إلى حد ما ، والأدوات الرئيسية لحلها التي توفرها مكتبة النظام.ويندوز.أشكال.
- لماذا إنشاء تراكب من اثنين من صناديق الصور في ج#
- طرق إنشاء تراكب في ج#
- استخدام الخاصية الأم
- باستخدام طريقة برينجتوفرونت
- تكوين خصائص مربع الصور المتراكب
- عتامة الصورة المتراكبة
- ضبط حجم وموضع صندوق الصور المتراكب
- سؤال وجواب
لماذا إنشاء تراكب من اثنين من صناديق الصور في ج#
بيكتوريبوكس هو عنصر تحكم في أشكال ويندوز التي تسمح لك لعرض الصور على النموذج. في بعض الحالات ، قد يكون من الضروري إنشاء تراكب لصورة واحدة على أخرى ، مما يوفر عددا من المزايا:
- محاذاة الصورة: يتيح لك تداخل صندوقي الصور محاذاة الصور بدقة فوق بعضها البعض ، مما قد يكون مفيدا عند إنشاء صور مجمعة أو عروض شرائح.
- خلق تأثيرات: يمكن استخدام تراكب الصور لإنشاء تأثيرات مختلفة مثل الشفافية أو تراكب النص أو عناصر رسومية أخرى.
- تغيير العرض الديناميكي: يمكن للتطبيقات التي تحتاج فيها الصور إلى التحديث أو التغيير ديناميكيا استخدام تراكب صندوق الصور لعرض معلومات جديدة على الشاشة على الفور.
يمكن استخدام طرق مختلفة لإنشاء تراكب من صندوقي صور في ج#. على سبيل المثال ، يمكنك تغيير خاصية زوردر لعنصر بيكتوريبوكس للتحكم في ترتيب الطبقات التي توجد عليها الصور. يمكنك أيضا استخدام الشفافية أو هياكل الطبقة لإنشاء تراكب.
يمكن أن يكون إنشاء تراكب لصورتين في ج # مفيدا في العديد من المواقف التي يلزم فيها تحديد الموقع الدقيق وعرض الصور في النموذج. يمكن أن يكون هذا مفيدا لإنشاء تأثيرات ورسوم متحركة ، وكذلك لتحديث المعلومات ديناميكيا على الشاشة.
طرق إنشاء تراكب في ج#
1. استخدام الخاصية الأم:
لإنشاء تراكب من بيكتوريبوكس واحد على آخر ، يمكنك استخدام الخاصية الأصل في ج#. للقيام بذلك ، تحتاج إلى ما يلي:
- إنشاء كائنين بيكتوريبوكس وتعيين الخصائص المطلوبة بالنسبة لهم (الحجم والموقع ، الخ.).
- تعيين الكائن الأول إلى الثاني كعنصر الأصل باستخدام الخاصية الأصل.
- قم بتعيين الخصائص الضرورية للتراكب (على سبيل المثال ، خاصية برينجتوفرونت بحيث يكون الكائن الأول مرئيا أعلى الكائن الثاني).
مثال:
بيكتوربوكس بيكتوربوكس 1 = بيكتوربوكس جديد();
بيكتوربوكس بيكتوربوكس 2 = بيكتوربوكس جديد();
// تعيين خصائص بيكتوريبوكس 1 و بيكتوريبوكس 2 ، على سبيل المثال:
بيكتوريبوكس 1.الحجم = الحجم الجديد (200 ، 200);
بيكتوريبوكس 1.الموقع = نقطة جديدة (0 ، 0);
بيكتوريبوكس2.حجم = حجم جديد (300، 300);
بيكتوريبوكس2.الموقع = نقطة جديدة (50، 50);
// تعيين العنصر الأصل ل بيكتوريبوكس 1
بيكتوريبوكس 1.الأصل = صندوق صور2;
// تعيين خصائص ل
تراكب بيكتوريبوكس 1.جلب الجبهة();
2. استخدام خاصية عناصر التحكم:
يمكنك أيضا استخدام خاصية عناصر التحكم لإنشاء تراكب من عناصر التحكم في ج#. في هذه الحالة ، من الضروري:
- قم بإنشاء حاوية (على سبيل المثال ، نموذج أو لوحة) ، سيتم وضع العناصر بداخلها.
- إنشاء كائنين بيكتوريبوكس وإضافتها إلى مجموعة عناصر التحكم من الحاوية.
- قم بتعيين الخصائص الضرورية للتراكب (على سبيل المثال ، خاصية برينجتوفرونت بحيث يكون الكائن الأول مرئيا أعلى الكائن الثاني).
مثال:
// إنشاء حاويةلوحة لوحة = لوحة جديدة ();
// задать свойства контейнера, например:
panel.Size = new Size(500, 500);
// создать объекты PictureBox
PictureBox pictureBox1 = new PictureBox();
PictureBox pictureBox2 = new PictureBox();
// задать свойства pictureBox1 и pictureBox2, например:
pictureBox1.Size = new Size(200, 200);
pictureBox1.Location = new Point(0, 0);
pictureBox2.Size = new Size(300, 300);
pictureBox2.Location = new Point(50, 50);
// добавить pictureBox1 и pictureBox2 в коллекцию Controls контейнера
panel.Controls.إضافة (صندوق صور1);
لوحة.الضوابط.إضافة (صندوق الصور 2);
// تعيين خصائص ل
تراكب بيكتوريبوكس 1.جلب الجبهة();
باستخدام هذه الأساليب ، يمكنك إنشاء تراكب من بيكتوريبوكس واحد على آخر في ج#. في الوقت نفسه ، يمكنك تغيير الخصائص لتحقيق النتيجة المرجوة.
استخدام الخاصية الأم
الخاصية الأم هي واحدة من الخصائص الرئيسية لفئة بيكتوريبوكس في ج# ، والذي يسمح لك لإنشاء تراكب من بيكتوريبوكس واحد على آخر.
عندما نقوم بإنشاء اثنين أو أكثر من صناديق الصور في نموذج ، يمكن أن يكون كل واحد منهم مكونا رئيسيا أو فرعيا للآخر. باستخدام الخاصية الأم ، يمكننا تعيين المكون الرئيسي لكل بيكتوريبوكس وتحديد موقفها وعرض النظام.
مثال على استخدام الخاصية الأصل لإنشاء تراكب:
- إنشاء تطبيق نموذج ويندوز في فيسوال ستوديو.
- إضافة مكونين بيكتوريبوكس إلى النموذج (على سبيل المثال ، بيكتوريبوكس 1 و بيكتوريبوكس 2).
- قم بتعيين الصورة لكل صندوق صور (على سبيل المثال ، باستخدام خاصية إيماجيلوكاتيون).
- تعيين الخاصية الأم ل بيكتوريبوكس 2 على النحو التالي:
- قم بتغيير الخصائص العلوية واليسرى لـ بيكتوريبوكس 2 لتحديد موضعه بالنسبة إلى بيكتوريبوكس الأصل 1.
نتيجة لذلك ، سيكون صندوق الصور الأول هو الأصل لصندوق الصور الثاني وسيتم عرض كلتا الصورتين في النموذج. موقف الصورة الثانيةمربع يمكن تعيين باستخدام خصائص أعلى واليسار.
استخدام الخاصية الأصل يجعل من السهل إنشاء تراكبات مختلفة من الصور والمكونات الأخرى على نموذج في ج# ، مما يجعل إنشاء واجهات المستخدم المعقدة أكثر مرونة وملاءمة.
باستخدام طريقة برينجتوفرونت
طريقة برينغتوفرونت هي واحدة من الطرق المتاحة للسيطرة على ترتيب العرض من عناصر بيكتوربوكس في ويندوز أشكال التطبيقات في لغة البرمجة ج#. تسمح لك هذه الطريقة بنقل الصورة المحددةصندوق فوق العناصر الأخرى في النموذج.
لاستخدام طريقة برينجتوفرونت اتبع الخطوات التالية:
- إنشاء كائن بيكتوريبوكس وتعيين خصائصه مثل الأبعاد والموضع والصورة.
- إنشاء كائن بيكتوريبوكس آخر مع خصائص مماثلة أو مختلفة.
- أضف كلا الكائنين إلى نموذج الطلب باستخدام عناصر التحكم.إضافة () طريقة.
- استخدام طريقة برينغتوفرونت () ل بيكتوريبوكس المحدد الذي يحتاج إلى مضافين من جهة أخرى.
Пример использования метода BringToFront для наложения одного PictureBox на другой:
// Создание первого PictureBox
PictureBox pictureBox1 = new PictureBox();
pictureBox1.Size = new Size(200, 200);
pictureBox1.Location = new Point(50, 50);
pictureBox1.Image = Image.FromFile("image1.jpg");
// Создание второго PictureBox
PictureBox pictureBox2 = new PictureBox();
pictureBox2.Size = new Size(200, 200);
pictureBox2.Location = new Point(100, 100);
pictureBox2.Image = Image.FromFile("image2.jpg");
// إضافة صندوق صور إلى النموذج
هذا.الضوابط.إضافة (صندوق صور1);
هذا.الضوابط.إضافة (صندوق الصور 2);
// ضبط ترتيب العرض
من بيكتوريبوكس2.جلب الجبهة();
في هذا المثال ، أنشأنا اثنين من الصورةمربعات مع صور مختلفة ووضعها على نموذج الطلب. ثم استخدمنا طريقة برينغتوفرونت () لتراكب بيكتوريبوكس الثاني على رأس أول واحد.
لاحظ أنه عند استخدام طريقة برينغتوفرونت () ، فمن المهم أن نسميها ل بيكتوريبوكس التي تحتاج إلى نقل أعلى في ترتيب العرض.
طريقة برينغتوفرونت () يحل مشكلة تداخل عناصر بيكتوريبوكس عند تطوير واجهات المستخدم الرسومية ، عندما بعض الصور أو العناصر يجب أن تكون مرئية على رأس الآخرين.
تكوين خصائص مربع الصور المتراكب
بيكتوريبوكس في لغة البرمجة ج # هو عنصر تحكم الذي يسمح لك لعرض الصور والكائنات الرسومية الأخرى على شكل تطبيق أشكال ويندوز. يمكن أن يكون تركيب صندوق صور واحد على آخر مفيدا لإنشاء تركيبات صور معقدة وتنفيذ تأثيرات مختلفة.
يمكن استخدام مجموعة متنوعة من الطرق والخصائص لتخصيص خصائص صندوق الصور المتراكب. دعونا ننظر إلى بعض منهم:
- الموقع-يحدد موضع الزاوية العلوية اليسرى من مربع الصورة بالنسبة إلى العنصر الأصلي. يمكنك تعيين القيمة باستخدام خاصية النقطة أو تحديد إحداثيات س و ص.
- الحجم-يحدد حجم الصورةمربع. يمكنك تعيين القيمة باستخدام خاصية الحجم أو تحديد العرض والارتفاع بشكل منفصل.
- مرساة-يحدد كيف سيغير مربع الصورة حجمه عند تغيير حجم العنصر الأصلي. يمكنك تعيين القيمة باستخدام تعداد أنكورستيلز.
- باكولور-يحدد لون الخلفية من الصورةمربع.
- صورة-يحدد الصورة التي سيتم عرضها في الصورة. يمكنك تحديد المسار إلى ملف الصورة أو استخدام كائن من فئة الصورة.
- إيماجيلوكاتيون-يحدد المسار إلى ملف الصورة ليتم عرضها في بيكتوريبوكس. إذا لم يتم تحديد الصورة ، يتم استخدام الصورة المحددة في إيماجيلوكاتيون.
- سيزمود-يحدد كيف سيتم تحجيم الصورة في بيكتوريبوكس. يمكنك استخدام القيم من تعداد بيكتوريبوكسيزيمود ، مثل أوتوسيزي ، سنتريماج ، عادي ، ستريتشيماج ، والتكبير.
- نمط الحدود-يحدد نمط إطار الصورة. يمكنك استخدام القيم من تعداد بورديرستيل ، مثل فيكسيد3د ، فيكسيدسينغل ، ولا شيء.
- مرئي-يحدد ما إذا كان صندوق الصور سيكون مرئيا في نموذج الطلب.
باستخدام هذه الأساليب والخصائص ، يمكنك إنشاء مجموعة متنوعة من تراكب بيكتوريبوكس على النموذج وإضافة تأثيرات مثيرة للاهتمام إلى التطبيق الخاص بك.
مثال على استخدام صندوق الصور المتراكب:
في هذا المثال ، تم إنشاء اثنين من الصورةصناديق ، كل منها يحتوي على صورته الخاصة. الصورة الأولى على اليسار والثانية على اليمين. وبالتالي ، نحصل على تراكب لصورتين ، مما يخلق تأثير مقارنة أو دمج عناصر رسومية مختلفة.
عتامة الصورة المتراكبة
في ج# ، يمكننا تغيير عتامة الصورة المتراكبة.
تحدد التعتيم مدى شفافية الصورة أو تعتيمها. يمكن أن تتراوح قيمة الشفافية من 0 إلى 1 ، حيث تكون 0 صورة شفافة تماما (غير مرئية) و 1 غير شفافة تماما (مرئية تماما).
الصور.
Пример кода ниже демонстрирует, как установить прозрачность (opacity) наложенного изображения:
pictureBox1.Image = Image.FromFile("путь_к_изображению");
pictureBox1.Image = ChangeOpacity(pictureBox1.Image, 0.5f);
private Image ChangeOpacity(Image originalImage, float opacity)
{
Bitmap bmp = new Bitmap(originalImage.Width, originalImage.Height);
using (Graphics graphics = Graphics.FromImage(bmp))
{
ColorMatrix matrix = new ColorMatrix();
matrix.Matrix33 = opacity;
ImageAttributes attributes = new ImageAttributes();
attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
graphics.DrawImage(originalImage, new Rectangle(0, 0, bmp.Width, bmp.Height),
0, 0, originalImage.Width, originalImage.Height, GraphicsUnit.Pixel, attributes);
}
return bmp;
}
.
يمكن أن يكون استخدام العتامة مفيدا عندما تريد إنشاء تأثير تراكب الصورة بشفافية متغيرة لإنشاء تركيبات أكثر تعقيدا.
ضبط حجم وموضع صندوق الصور المتراكب
عندما نحتاج إلى إنشاء تراكب لصورة على أخرى باستخدام عناصر صندوق الصور في ج# ، نحتاج إلى أن نكون قادرين على ضبط حجم وموضع الصورة المتراكبة بشكل صحيح. في هذا القسم ، سننظر في كيفية القيام بذلك.
- تحديد حجم وموضع عنصر صندوق الصور:
- تراكب صورة على صندوق صور:
- تحجيم الصورة المتراكبة:
من أجل تعيين أبعاد وموضع الصورةعنصر مربع ، تحتاج إلى تعيين قيم العرض والارتفاع ، أعلى وخصائص اليسار. على سبيل المثال ، لتعيين عرض وارتفاع عنصر بيكتوريبوكس إلى 200 بكسل ، وكذلك تعيين موضعه في الأعلى بمقدار 50 بكسل وعلى اليسار بمقدار 100 بكسل من عنصر التحكم الأصلي ، يمكنك استخدام التعليمات البرمجية التالية:
| بيكتوريبوكس 1.العرض = 200; | بيكتوريبوكس 1.الارتفاع = 200; |
| بيكتوريبوكس 1.أعلى = 50; | بيكتوريبوكس 1.اليسار = 100; |
سيقوم هذا الرمز بتعيين أبعاد وموضع عنصر مربع الصورة وفقا للقيم المحددة.
لتراكب صورة على أخرى ، استخدم خاصية الصورة لعنصر مربع الصورة. على سبيل المثال ، لتحديد صورة ليتم فرضه على الصورة الحالية لعنصر بيكتوريبوكس ، يمكنك استخدام التعليمات البرمجية التالية:
| بيكتوريبوكس 1.صورة = صورة.منملف ("تراكب.جبغ"); |
في هذا المثال ، الصورة الواردة في الملف " تراكب.جبغ " ، سيتم فرضه على الصورة الحالية لعنصر بيكتوريبوكس.
إذا كنت بحاجة إلى تغيير حجم الصورة المتراكبة لتحقيق التأثير المطلوب ، يمكنك استخدام خاصية سيزمود لعنصر بيكتوريبوكس. على سبيل المثال ، لتوسيع نطاق الصورة المتراكبة إلى حجم عنصر بيكتوريبوكس ، يمكنك استخدام التعليمات البرمجية التالية:
| بيكتوريبوكس 1.سيزمود = بيكتوريبوكسيزيمود.ستريتشيماج; |
في هذا المثال ، سيتم تمديد الصورة المتراكبة أو ضغطها لتناسب حجم عنصر صندوق الصور.
الآن أنت تعرف كيفية ضبط حجم وموضع صندوق الصور المتراكب بشكل صحيح في ج#. ستساعدك هذه المعرفة على إنشاء تراكبات صور مثيرة للاهتمام وجميلة في مشاريعك.