Thuộc tính BackColor
là thuộc tính môi trường theo mặc định, có nghĩa là thuộc tính thừa hưởng giá trị của nó từ kiểm soát gốc. Khi bạn đặt nó rõ ràng thành giá trị cụ thể, ghi đè lên bản chất môi trường xung quanh và buộc nó sử dụng giá trị cụ thể đó.
Điều khiển nút Windows tiêu chuẩn không hỗ trợ các màu tùy chỉnh, vì vậy WinForms sẽ thực sự tùy chỉnh vẽ điều khiển để cho phép nhà thiết kế ghi đè màu của nó. Bằng cách đó, nếu bạn muốn có một nút màu xanh lá cây hoặc màu đỏ xấu xí, bạn có thể làm điều đó. Điều gì đã xảy ra ở đây là bạn đã thiết lập màu nền tùy chỉnh một cách hiệu quả cho điều khiển nút (bạn đặt nó thành màu nền của điều khiển 3D, nhưng nó có thể dễ dàng có màu tía), và điều đó buộc WinForms phải tùy chỉnh vẽ điều khiển và vẽ nền của nó bằng màu được chỉ định của bạn. Đó là những gì mang lại cho nó sự xuất hiện "phẳng" - màu nền bây giờ được vẽ bằng một màu tùy chỉnh duy nhất, thay vì sử dụng hiệu ứng gradient mặc định. Nó sẽ không được chú ý theo chủ đề Windows Classic (trước Aero) vì các nút thực sự là là được sơn với màu điều khiển 3D phẳng. Tuy nhiên, Aero thêm gradient và các hiệu ứng "nóng" khác, làm cho nó dính ra như một ngón tay cái đau.
Để xóa giá trị bạn đã đặt và khôi phục tính chất xung quanh của thuộc tính, bạn có thể nhấp chuột phải vào thuộc tính trong Cửa sổ thuộc tính và chọn "Đặt lại". Bạn cũng có thể làm điều đó thông qua mã bằng cách thiết lập thuộc tính để default(Color)
:
myButton.BackColor = default(Color);
Bạn cũng sẽ cần phải thiết lập các UseVisualStyleBackColor
bất động sản trở lại true
, mà được tự động thiết lập để false
bất cứ khi nào BackColor
tài sản được thay đổi để hỗ trợ các tùy chỉnh màu nền.
Ngoài ra, bạn có thể yêu cầu WinForms bỏ qua các thuộc tính tùy chỉnh như vậy và yêu cầu Windows vẽ nút điều khiển. Thực hiện việc này bằng cách đặt thuộc tính FlatStyle
thành FlatStyle.System
.
Một lần nữa, điều này có thể được thực hiện trong thiết kế hoặc thông qua mã. Điều này không chỉ ngăn cản bạn thay đổi những điều ngớ ngẩn như màu nền, tạo ra một điều khiển xấu xí, mà còn khôi phục lại hành vi tự nhiên của nút điều khiển Win32 đối với ứng dụng WinForms của bạn, bao gồm các hiệu ứng mờ dần của Aero.
Tôi không biết tại sao điều này không phải là mặc định. Bạn cần phải thực hiện một yêu cầu đặc biệt để có được các điều khiển xấu và không chuẩn. Điều đó không nên xảy ra tự động. Tôi chỉ có thể giả định nó là một nhượng bộ cho các lập trình viên VB 6, những người đã có thể thực hiện tất cả các loại điều khiển xấu xí trong nhiều năm.
Nếu thay đổi trong chế độ thiết kế sau đó chỉ cần đi tới [lại color] tài sản (trong chế độ thiết kế) và click chuột phải. Bạn sẽ nhận được một menu để hoàn nguyên về mặc định. –