2010-03-29 10 views
6

Uygulamamda kullanıcıya diyaloğu ve ana formu (similar to how jQuery looks) gösteren bir özellik uygulamak istiyorum. Tek düşüncem formun bir ekran görüntüsünü almak, bir panelin arka planı olarak (beğenime göre opaklıkla) ve sonra paneli herşeyi form üzerindeki her şeye itmek. Bunu yapmanın daha iyi bir yolu olduğuna inanıyorum, herhangi bir öneri?Bir iletişim kutusu görüntülerken winform arka planının "karartılması" için en iyi yol nedir?

cevap

11

Opaklık özelliği, bir formu "karartmak" için ihtiyacınız olan şeydir. Bir bindirme oluşturmanız gerekecek, this thread kodumda bunun nasıl yapılacağını gösterir.

Programınızın bir UAC istemi görüntülüyor gibi görünmemesine dikkat edin. Tarayıcılar için uygun olsa da, kullanıcı hiçbir zaman bir iletişim kutusuyla kaplanmış bir pencerenin devre dışı bırakıldığının farkına varmayacaktır. Kontroller, kendilerini açıklığa kavuşturmak için farklı şekilde boyar.

+1

+1: Bu sınıflara kontrolleri gerektirmez gibi bu benim daha kolay bir yaklaşımdır. –

+3

Çok hoş bir çözüm. Her ne kadar "kullanıcı, bir iletişim kutusunun kapladığı bir pencerenin devre dışı bırakıldığını kabul etmede herhangi bir sıkıntı yaşamayacağını" söylemeliyim, bazı kullanıcılara çok fazla kredi verebiliyor. ;) – stout

+0

Harika çözüm. Ancak, olumsuz bir yanda, mevcut formda ek bir biçim eklendiğinden, odak, üst üste gelme formunda veya ana formda olabilir. Bu ideal değil. Demek istediğim mevcut form üzerinde bir bindirme oluşmuş gibi görünmüyor, ama iki form açılır. İdeal hale getirmek için herhangi bir mantık olabilir mi? – nawfal

2

Niçin modal pencereyi, modal iletişim kutusunun başlatılmasından hemen önce ana pencerenin% 50'si gibi bir şeye ayarlamıyorsunuz ve kalıcı iletişim kutusu kapatıldığında% 100'e geri dönüyoruz? Bu tam olarak istediğin şey son kullanıcı için aynı işlevi yerine getirmiyor.

JQuery örneğiniz gibi bir şey yapmak istiyorsanız, ekran kapağını/genişliğini/ayarladığınız arka plan fikri olarak ayarlamanız gerekir.

0

Bunun eski bir iş parçacığı olduğunu biliyorum, ancak hala ilgileniyorsanız bu projeye göz atabilirsiniz.

Download Project

İlgili konular