gpt4 book ai didi

.net - 如何重置为默认按钮背景色?

转载 作者:行者123 更新时间:2023-12-03 07:43:18 25 4
gpt4 key购买 nike

我尝试了按钮背景颜色的不同选项,最终更改了“外观”类别中的“BackColor”属性。然后我将其改回默认状态,即 Control,但它看起来仍然与其他按钮不同:

Screenshot of buttons

我尝试构建项目并重新启动 Visual Studio,但没有帮助。

我知道我可以拖动另一个按钮并复制/粘贴代码,但首先是什么导致了这种情况以及如何正确修复它?

最佳答案

BackColor 属性默认是环境属性,这意味着它从其父控件继承其值。当您显式将其设置为特定值时,会覆盖环境性质并强制它使用该特定值。

标准的Windows按钮控件不支持自定义颜色,因此WinForms实际上会自定义绘制控件以允许设计者覆盖其颜色。这样,如果您想要一个丑陋的绿色或红色按钮,您就可以做到。

这里发生的情况是,您已经为按钮控件有效地设置了自定义背景颜色(您将其设置为 3D 控件的背景颜色,但它也可以很容易地设置为紫色),这迫使 WinForms 进行自定义绘制控件并用您指定的颜色绘制其背景。这就是它具有“平面”外观的原因 - 背景颜色现在使用单一自定义颜色绘制,而不是使用默认的渐变效果。在 Windows Classic(Aero 之前)主题下,它不会那么明显,因为按钮实际上是用平面 3D 控件颜色绘制的。但 Aero 添加了渐变和其他“热门”效果,这使得它显得很突出。

要清除已设置的值并恢复属性的环境性质,您可以在“属性”窗口中右键单击该属性,然后选择“重置”。您还可以通过代码将属性设置为 default(Color) 来完成此操作:

myButton.BackColor = default(Color);

您还需要将 UseVisualStyleBackColor 属性设置回 true,只要 BackColor 属性已更改以支持自定义背景颜色。

或者,您可以告诉 WinForms 完全忽略此类自定义属性,并要求 Windows 绘制按钮控件。通过将 FlatStyle 属性设置为 FlatStyle.System 来实现此目的。

同样,这可以在设计器中或通过代码来完成。这不仅可以防止您更改背景颜色等愚蠢的事情,创建一个极其丑陋的控件,而且还可以将 Win32 按钮控件的 native 行为恢复到 WinForms 应用程序,包括悬停时微妙的 Aero 淡入淡出效果。

我不知道为什么这不是默认值。您应该提出特殊要求才能获得丑陋且非标准的控件。这不应该自动发生。我只能假设这是对 VB 6 程序员的让步,他们多年来一直能够制作各种丑陋的控件。

关于.net - 如何重置为默认按钮背景色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569200/

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