كيف يمكنني ربط نوافذ متعددة في C#؟
-
06-07-2019 - |
سؤال
أحاول إنشاء تطبيق يجعل نافذة (خارجي للتطبيق) شفافة عندما يفقد التركيز. معظم الأشياء (الحصول على معرف النافذة ، وضبط شفافة ، وما إلى ذلك) سيكون سهلاً ، باستثناء شيء واحد - كيف يمكنني ربط النوافذ؟
المحلول
يمكنك استخدام interop. يستخدم SendMessage () وظيفة لإرسال نافذتك رسالة مخصصة. يمكن للنافذة الاتصال بعد ذلك setLayeredWindowAttributes () بمجرد تلقي هذه الرسالة لتغيير شفافيةها.
الشيء الآخر هو أنك يجب أن تكون قادرًا حقًا على جعل النافذة تتحول إلى شفافية عندما تفقد التركيز من خلال الاستماع إليها wm_killfocus
تعديل:
مزلقة على الأحداث غير المنطوقة والتنشيط في C#.
private void Form1_Deactivate( object sender, EventArgs e ) { this.Opacity = 0.5 ; } private void Form1_Activated( object sender, EventArgs e ) { this.Opacity = 1.0 ; }
لا تنتمي إلى StackOverflow