كيف يمكنني جعل عنصر تحكم تراكب بشفافية فيديو ديريكتشو؟

StackOverflow https://stackoverflow.com/questions/305929

  •  08-07-2019
  •  | 
  •  

سؤال

ولدي السيطرة، بالفيديو، والذي يعرض الفيديو باستخدام DirectShow - انها تعيينه على أنه صاحب IVideoWindow. لدي عنصر تحكم آخر، AreaControl، التي من المفترض أن تظهر على شكل مستطيل متقطع حول السيطرة الفيديو. ومن المقرر AreaControl أن تكون شفافة باستخدام SetStyle (ControlStyles.SupportsTransparentBackColor، صحيح). لو كنت مكان AreaControl على أي عنصر تحكم آخر، فإنه يعمل كما هو متوقع، مما يدل على مستطيل متقطع خلال ضوابط وراء ذلك. ولكن عندما أضع تحكم مستطيل متقطع حول السيطرة الفيديو، ويتم تعبئة AreaControl في ون_الخلفية مع وبالفيديو ل.

وماذا يجب أن أفعل للحصول على الفيديو لعرضه خلال AreaControl، مع مستطيل متقطع مضافين على ذلك؟ هل هناك طريقة للحصول على بالفيديو لرسم نفسه مع الفيديو، بدلا من مجرد رسم ون_الخلفية لها؟

هل كانت مفيدة؟

المحلول 2

في نهاية الإجابة على هذا تبين أن استخدام خاصية المنطقة AreaControl، إذ لم نكن بحاجة إلى الشفافية الجزئية.

نصائح أخرى

وبقدر ما أعرف، لا توجد وسيلة لفعل ما تريد القيام به مباشرة. المشكلة هي، وتنفيذ أسلوب شفاف من عنصر تحكم. عنصر تحكم مع هذه السمة أسلوب أساسا يستند فقط، ما هو وراء ذلك مما يجعلها تبدو شفافة. (في واقع الأمر ليست شفافة حقا على الإطلاق).

والحل الوحيد الذي يتبادر إلى ذهني هو استخدام نافذة (نموذج) ووضع جهاز التحكم في ذلك. ويمكن إجراء نموذج شفافية من خلال إعداد خاصية التعتيم إلى شيء أقل من 1.0. وهناك قيمة 0.0 تكون شفافة تماما (اقرأ: غير مرئية). يجب أن تكون الحدود متقطع أسود تماما. مع غموض f.e. 0.4 سيظهر الرمادي.

وبدلا من ذلك، قد يكون لديك بعض الحظ مع TransparencyKey خاصية النموذج. قد يكون تعيين هذا إلى الأبيض التأثير المطلوب، ولكن أنا لم تختبر هذه واحدة.

في كلتا الحالتين يجب أن يكون نموذج بلا حدود تماما. قد تضطر إلى إضافة بعض رمز لإعادة النموذج، عندما يتحرك شكل فيديو.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top