سؤال

أحاول إنشاء تطبيق يجعل نافذة (خارجي للتطبيق) شفافة عندما يفقد التركيز. معظم الأشياء (الحصول على معرف النافذة ، وضبط شفافة ، وما إلى ذلك) سيكون سهلاً ، باستثناء شيء واحد - كيف يمكنني ربط النوافذ؟

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

المحلول

يمكنك استخدام 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 ;
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top