Tôi đang xây dựng một ứng dụng WinForms và tôi đang sử dụng các màu cụ thể trên hầu hết các điều khiển. Tôi làm điều đó đôi khi từ các nhà thiết kế WinForms, và đôi khi trực tiếp vào mã của tôi.Làm cách nào tôi thực hiện mã màu ứng dụng trong ứng dụng WinForm?
Tôi có một lớp tĩnh đâu đó trông như rằng:
public static class MyColors
{
public static Color DarkGreen = Color.FromArgb(0, 70, 62);
...
public static Color Orange = Color.FromArgb(239, 132, 16);
}
tôi có thể sử dụng những màu sắc trong mã của tôi khá dễ dàng, nhưng nó không thể làm từ các nhà thiết kế, điều này làm tăng lỗi này:
MyColors.DarkGreen không phải là giá trị hợp lệ cho Int32.
(Tôi đã cố gắng để lưu trữ các đại diện Int32 của những màu sắc, nhưng điều này không thành công với các lỗi tương tự)
Giải pháp Tôi đang sử dụng ngay bây giờ là sử dụng mã rgb màu trong thiết kế , các giá trị lớp MyColors trong mã của tôi và tôi đang thực hiện các thay đổi bằng cách thay thế tất cả các chức năng của Visual Studio. Đây không phải là một giải pháp tốt đẹp, nhưng tôi đã không thể tìm thấy một ý tưởng tốt hơn cho đến nay.
Bất kỳ ý tưởng nào?
Lưu ý: Tôi biết về this question, đó là hơi khác với tôi, như tôi không nhìn vào cách thay đổi "KnownColors".
@ Jeff: vì tôi muốn cập nhật màu sắc của các nút điều khiển winforms mặc định (nút, nhãn, v.v.), tôi không thể áp dụng thuộc tính Editor cho thuộc tính ForeColor/BackColor, trừ khi tôi kế thừa tất cả các điều khiển đó nghe có vẻ hơi quá mức với tôi ... hay tôi đã bỏ lỡ điều gì đó? – Brann
@Brann: Bạn đã được kế thừa bằng cách triển khai biểu mẫu của mình. Bạn sẽ phải áp dụng nó để ghi đè trong biểu mẫu của riêng bạn. –
Tất nhiên, các điều khiển trong biểu mẫu sẽ cần phải được đặt thành Color.Empty để kế thừa từ kiểm soát gốc của chúng hoặc bạn cũng cần phải ghi đè các điều khiển đó. Tôi không tin rằng có một sự thay thế để có được sự hỗ trợ của nhà thiết kế, tôi sợ. –