2010-09-20 43 views
11

Trong ứng dụng WPF đơn giản của tôi, tôi sử dụng kiểm soát CheckBox thông thường. Có vẻ như tôi có thể kiểm soát nền và nền trước. Thuộc tính Foreground điều khiển văn bản bên cạnh hộp kiểm nhưng không kiểm tra dấu kiểm. Theo mặc định nền là màu trắng, tiền cảnh của tôi là rất gần với màu trắng vì tôi có một cửa sổ tối hình thành nền.Đánh dấu chọn trong hộp kiểm

Khi tôi chạy ứng dụng trên máy phát triển Windows 7, dấu kiểm màu đen. Trên máy tính Win XP, dấu kiểm màu xanh lục. Tuy nhiên trên một máy Win XP khác, dấu kiểm là vô hình bởi vì nó có màu trắng trên nền trắng.

Câu hỏi của tôi là "Làm cách nào để kiểm soát màu của dấu kiểm của hộp kiểm của tôi?".

Trả lời

16

Sự cố này xảy ra trên Win XP sử dụng chủ đề'Windows Classic 'hoặc sử dụng Remote Desktop. Dấu kiểm tra dấu kiểm của một hộp kiểm có màu của màu nền trước cho toàn bộ Hộp kiểm.

<CheckBox Foreground="White" Content="My Text" /> 

tôi đã có thể khắc phục vấn đề này bằng cách thay đổi vào mã bên dưới:

<CheckBox> 
    <Label Foreground="White">My Text</Label> 
</CheckBox> 
+0

Có chính xác cùng một vấn đề. Cảm ơn bạn! – smvlad

3

Bạn cần ghi đè ControlTemplate của Hộp kiểm.

Here's an example trên MSDN.

+0

nhờ. Nó không đơn giản như tôi hy vọng nhưng tôi đang nhìn vào nó. – Vadim

+0

Nếu bạn có Blend, bạn luôn có thể sử dụng lệnh Edit Template (xin lỗi, tôi không có Blend ở đây, vì vậy tôi không thể cho bạn biết lệnh chính xác) để lấy mẫu mặc định. Hoặc, bạn có thể sử dụng một cái gì đó như Snoop. –

0

Hoặc, tôi nghĩ bạn có thể xác định kiểu xác định trình kích hoạt thay đổi màu như bạn muốn. Kể từ khi nó thú vị tôi sẽ thử nó ra và gửi một mẫu trong một chút.

Chỉnh sửa: nevermind, Hộp kiểm sử dụng BulletChrome thực hiện một số hiển thị nội bộ và không hiển thị bất kỳ thuộc tính thú vị nào có thể được sử dụng để nối vào.

+0

Cảm ơn bạn rất nhiều vì đã xem xét nó. – Vadim

Các vấn đề liên quan