2011-04-22 36 views
2

我正在使用WinForms。我想做一個小班,修改控件以顯示它的工作。C#灰掉一個控件,然後再畫一個控件

我想畫一個覆蓋例如一個按鈕。它應該是半透明的灰色。 之後,我想在它上面畫一個ProgressBar(在中間)。類似於This,除了使用進度條。

我該如何認識到這一點?我不想設置進度條的位置,只是在另一個位置繪製。

我怎麼能這樣做? 謝謝:)

+0

您能否詳細說明.....我不明白您的問題......... – TechGiant 2011-04-22 19:54:58

+0

您想要在特定位置繪製控件,但您不想定位它? – Oded 2011-04-22 19:56:52

+0

我認爲他的意思是做一些類似於你可以使用Windows7任務欄中的圖像按鈕的方式來表現得像一個進度條...但在應用程序中的任何控制。 – 2011-04-22 19:58:59

回答

2

我以前做過類似的事情。

您需要使用Button.DrawToBitmap(Bitmap, Rectangle)來獲取按鈕的圖像。然後製作位圖灰度(there are multiple algorithms available for this;我已經成功使用了最後一個,雖然可能不是最初從本網站獲得的)。

現在,我完成了整個表單而不是按鈕,但是我禁用了表單,然後用自己的圖像覆蓋整個表單,然後用進度條覆蓋它(本身位於面板中與其他控件)。

您可以輕鬆地禁用該按鈕,使用包含圖像和其上方的進度欄的面板覆蓋它。

+1

如果你想繪製該圖像被禁用,只需使用這個類:http://msdn.microsoft.com/en-us/library/system.windows.forms.controlpaint.drawimagedisabled.aspx – Pedery 2011-04-23 01:36:15

相關問題