2013-05-24 22 views
10

Tôi đang tạo biểu mẫu Cửa sổ tùy chỉnh bằng cách sử dụng Blend. (bằng cách đặt AllowTransparency thành True)Thêm DropShadow vào Cửa sổ tùy chỉnh (Blend)

Tôi đã hoàn thành thiết kế và hoạt động khá tốt. Bây giờ tôi muốn thêm hiệu ứng Shadow vào nó. (DropShadowEffect)

Tôi không thể làm điều đó vì bản thân cửa sổ bị ẩn nên hiệu ứng sẽ không hiển thị. Và nó không hoạt động trên Grid chính. Không may mắn với việc thêm một đường viền và đưa bóng cho nó.

+0

Bài đăng [SO] này (http://stackoverflow.com/questions/3372303/dropshadow-for-wpf-borderless-window) có thể sẽ giúp bạn. – DHN

+0

@DHN Cảm ơn bạn đã liên kết, nhưng OP cho biết anh ấy không muốn 'AllowTransparency'. Và mã trả lời được chấp nhận dựa trên một dll nào đó mà không đưa ra bất kỳ sự kiểm soát nào. Ngoài ra, tôi muốn có một giải pháp Blend. – xperator

+0

Ok, đó chỉ là một cú đánh nhanh. Tôi đề nghị bạn nên lấy phần tử có thể nhìn thấy đầu tiên và cho nó hiệu ứng 'DropShadow'. Nhưng tôi đoán bạn đã thử điều đó rồi. ; o) – DHN

Trả lời

15

Ok tôi đã tìm thấy câu trả lời. (Với một số trợ giúp từ số này page)

Trước hết, hãy đặt cửa sổ AllowTransparency thành True. Sau đó thay đổi nó Background-No Brush

phép nói rằng bạn có một cái gì đó như thế này: (Bỏ qua các Rectangle và Borders)

enter image description here

Sau đó thay đổi màu sắc của Background sang màu trắng Grid. Bây giờ bấm vào cửa sổ của bạn và thêm khoảng 15 pixel chiều rộng và chiều cao của nó.

enter image description here

Và thay đổi cài đặt Shadow:

enter image description here

Bây giờ bạn sẽ nhìn thấy bóng :)

enter image description here

Tôi nghĩ rằng bạn đã có ý tưởng như thế nào đây là đang làm việc. Hãy nhớ rằng bạn vẫn có thể chơi xung quanh với chiều cao cửa sổ/trọng lượng và các thiết lập Shadow để có được một hiệu ứng tốt hơn.

+0

Tôi có thể thấy bạn đã tìm thấy giải pháp sau khi tất cả :) +1 –