當我有一個父控件,其中有一個BackColor
而不是SystemColors.Control
,但我有那個父控件上的按鈕,我想在系統中繪製它們。但是,當我不更改按鈕的BackColor
時,它會以父級的顏色繪製。當我將按鈕的BackColor
更改爲SystemColors.Control
時,它不再在Windows主題中繪製。防止繼承父母的BackColor的按鈕
左邊的版本是SystemColors.Control
,右邊是不改變BackColor
。
炸燬,它看起來像這樣。在這裏你可以看到按鈕有一個堅實的背景。
任何建議如何解決這個問題?
圖像中的效果可以通過創建一個新的.NET 2.0 WinForms項目和改變Form1
構造以下來完成:
public Form1()
{
InitializeComponent();
var textBox = new TextBox();
Controls.Add(textBox);
var button = new Button { Text = "L", Width = 23, Height = 18, Left = -1, Top = -1 };
textBox.Controls.Add(button);
// Disable the line below to get the default behavior
button.BackColor = SystemColors.Control;
}
我看不到,類似於按鈕上的控制顏色的正常漸變。讓它變大。 – 2010-12-20 13:21:00
@Hans Passant - 你走了。 – 2010-12-20 13:28:50