我用ContainerControl作爲我的基礎創建了一個簡單的自定義面板。我已經添加了自定義屬性來創建邊框和漸變背景。如果我重寫OnPaint和OnPaintBackground父級的所有子控件都繼承漸變和邊框樣式。作爲一項解決方案,我使用父母的BackgroundImage屬性,它工作正常,但有一些隨機怪癖。必須有更好的方法來解決這個問題,但我沒有找到解決辦法。有沒有通過Interop或其他C#方法來解決這個問題的窗口API函數?如果是這樣,請提供一個例子。孩子們繼承父母的外貌
編輯!這裏是被複制的樣式(例如難看,但使點):
EDIT 2!這裏是沒有所有的性能的簡單的硬編碼一個ContainerControl,設計師屬性等
public class Container : ContainerControl
{
protected override void OnPaintBackground(PaintEventArgs e)
{
using (var brush = new LinearGradientBrush(e.ClipRectangle, Color.Red, Color.Blue, LinearGradientMode.Vertical))
{
e.Graphics.FillRectangle(brush, e.ClipRectangle);
}
}
}
有趣的是,我不認爲這會發生。你可以發佈你的'OnPaint()'和'OnPaintBackground()'覆蓋嗎? – 2012-08-21 19:12:26
發佈圖片。 – 2012-08-21 19:15:25
'label2'是標準'Label'控件還是另一個自定義控件? – 2012-08-21 19:19:54