2009-09-23 31 views
8

Tôi đang sử dụng DwmExtendFrameIntoClientArea trong ứng dụng WPF của mình để có hiệu ứng kính. Điều này làm việc tốt. Những gì tôi muốn làm là thay đổi màu sắc được sử dụng cho kính - Tôi đang viết một đồng hồ đếm ngược, và tôi muốn cửa sổ là màu kính bình thường hầu hết thời gian, và sau đó để đi màu đỏ (nhưng vẫn còn với kính) khi hết thời gian.Thay đổi màu của kính Aero cho cửa sổ của tôi?

Tôi đã tìm thấy this question, nói về cách áp dụng kính có độ dốc và hoạt động tốt khi chọn màu khác. Thật không may, các đường viền không được tô màu một cách thích hợp.

Khi tôi tắt đường viền bằng cách sử dụng ResizeMode="NoResize", thì tôi sẽ kết thúc với các góc vuông. Tôi muốn giữ các góc tròn.

Tôi đã xem xét việc tạo cửa sổ có hình dạng bất thường, bằng cách sử dụng AllowTransparency="True" và hoạt động tốt, nhưng không giống như cửa sổ kính Aero. Nó trông hơi phẳng.

Vì vậy: câu hỏi của tôi: làm thế nào để tôi tạo một cửa sổ trong WPF trông giống như minh bạch kính Aero, nhưng sử dụng một màu sắc khác nhau?

+0

Tôi đang cố gắng thực hiện hiệu ứng kính Aero của riêng mình. Tôi rất gần nhận được giải pháp. Hãy nhìn vào: http://stackoverflow.com/questions/10004802/create-vista-glass-effect-on-wpf-with-custom-color Có lẽ chúng ta có thể đưa ra một giải pháp ... –

Trả lời

2

Tôi nghĩ rằng cách duy nhất có thể để đạt được điều này là sử dụng đường viền bán trong suốt và vẽ nó qua toàn bộ cửa sổ hoặc phần bạn có được kính. Giải pháp của nó nhưng tôi đoán đó là một giải pháp khả thi vì màu sắc của kính được xác định bởi người dùng hệ thống và cài đặt này sẽ ghi đè lên của bạn.

1

Tôi cũng tự hỏi mình câu hỏi đó.

tôi đã không tìm thấy một giải pháp tốt, mặc dù tốt nhất mà tôi đã đi qua cho đến nay được làm như sau:

HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = Colors.FromArgb(100,255,0,0); 

Thật không may này mang lại màu các hạn chế tối đa, thay đổi kích thước và nút đóng, mà tôi thà tránh.

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