1
我了這樣的透明面板(在C#):如何清除透明面板?
public class TransparentPanel : Panel
{
public TransparentPanel()
{
}
protected override CreateParams CreateParams
{
get
{
CreateParams createParams = base.CreateParams;
createParams.ExStyle |= 0x00000020; // WS_EX_TRANSPARENT
return createParams;
}
}
protected override void OnPaintBackground(PaintEventArgs e)
{
// Do not paint background.
}
}
它被顯示在一個正常的面板。我想繪製一個圓以在其他面板中顯示某些內容,因此我在透明的OnPaint方法上繪製了我的圓。然後,我想展示別的東西,所以我需要這個圈子「移動」到別的地方。
但我不能。
我在這裏找到的解決方案都不適合我,但我在OnPaint方法中繪製了這個圓。 我不使用事件的Graphics對象,因爲如果我這樣做,根本不顯示任何內容。
所以,我必須這樣做:
this.CreateGraphics()
我不能再畫一個圓圈在它使用的背景色:我的背景需要保持透明。並用Color.Transparent繪製一個圓圈不起作用。
清除透明面板會導致黑色背景替換透明面板。
指令
Graphics.Clear();
不能編譯。
無論這確實一個:
gr.Clear();
,因爲它需要一個顏色參數。
這:
gr.Clear(Color.transparent);
創建了一個黑色的背景。
對我來說似乎我已經嘗試過所有我能想到的東西。
有什麼想法?