gpt4 book ai didi

c# - 防止 Button 继承 Parent 的 BackColor

转载 作者:行者123 更新时间:2023-11-30 15:46:12 25 4
gpt4 key购买 nike

当我有一个父控件具有 BackColor 而不是 SystemColors.Control 时,但我希望在系统中绘制该父控件上的按钮他们。但是,当我不更改按钮的 BackColor 时,它会以父级的颜色绘制。当我将按钮的 BackColor 更改为 SystemColors.Control 时,它不再绘制在 Windows 主题中。

alt text
左侧版本带有 SystemColors.Control,右侧版本未更改 BackColor

alt text
炸了,看起来像这样。在这里您可以看到按钮具有纯色背景。

有什么建议可以解决这个问题吗?

图像中的效果可以通过创建一个新的 .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;
}

最佳答案

不幸的是,我目前只能访问 Windows 7,所以我无法在 XP 等上进行测试。但是你是在 Main 入口点调用 Application.EnableVisualStyles您的 WinForms 应用程序?

在启用了 Aero 的 Windows 7 上,如果调用 Application.EnableVisualStyles,按钮不会采用父颜色。

注意:您应该设置 button.UseVisualStyleBackColor = true; 并且不要显式设置按钮的 BackColor 属性。

关于c# - 防止 Button 继承 Parent 的 BackColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4489663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com