Sharp, gradient và brush mang lại sức mạnh cho người dùng để có thể tạo ra các control có giao diện đẹp đẽ. Ví dụ, gradient có thể được dùng để tạo ra các hiệu ứng như ánh sáng hoặc đổ bóng. Trong chương trình ví dụ, chúng ta sẽ tạo một chiếc đồng hồ, hình dưới đây sẽ là kết quả sau khi hoàn thành bài hướng dẫn này:
![]()
Trước khi tạo chiếc đồng hồ này, hãy cùng xem lại một lượt các thuộc tính mà chúng ta dùng để tạo các control này.
Đối tượng Shape
Silverlight hỗ trợ đồ họa vector bằng cách cung cấp các hình họa sau:
- Ellipse – Mô tả hình trái xoan hoặc hình tròn
- Rectangle – Mô tả mình vuông hoặc chữ nhật (có thể có các góc bo tròn)
- Line – Mô tả một đoạn thẳng nối giữa hai điểm
- Polygon – Mô tả một hình đa giác đóng
- Polyline – Mô tả một tập hợp nhiều đoạn thẳng liên tiếp, các đoạn thẳng này có thể kết hợp thành một đa giác đóng hoặc không
- Path – Mô tả các hình họa phức tạp bao gồm cả các đường cong hoặc cung tròn
Màu sắc
Màu sắc có thể được chỉ định theo một trong những cách sau:
- Tên, kiểu như “Red”, “Blue”, “Black”…
- Ký pháp 6 số RGB (red, green, blue) #rrggbb trong đó rr, gg và bb là hai số thập lục phân biểu thị giá trị các thành màu đỏ, xanh lục và xanh dương. Ví dụ: #FF0000 chỉ ra màu đỏ sáng
- (alpha, red, green, blue) #aarrggbb trong đó rr, gg và bb là hai số thập lục phân biểu thị giá trị các thành màu đỏ, xanh lục và xanh dương.
- Ký pháp 8 digit ARGB (alpha, red, green, blue), tương tự ký pháp 6 số nhưng có thêm thành phần alpha(độ trong suốt). Ví dụ, #FFFF0000 mô tả màu đỏ sáng và không trong suốt.
Fill và Stroke
Các hình họa bao gồm 2 phần, đường viền bên ngoài và phần bên trong. Màu sắc của các thành phần này được kiểm soát thông qua các thuộc tính Stroke và Fill. Một sô hình họa như Line chỉ có Stroke, trong trường hợp này, việc đặt lại giá trị cho Fill sẽ không có tác dụng
Bút vẽ
Dùng <Ellipse.Fill> chúng ta có thể đặt giá trị cho thuộc tính Fill của hình ellipse này theo nhiều cách:
- linear gradient brush – Vẽ một gradient dọc theo một đường thẳng. Đường này mặc nhiên chạy dọc từ góc trái trên xuống góc phải dưới. Thuộc tính StartPoint và EndPoint có thể thay đổi các vị trí đó.
- Image brush – Vẽ đối tượng bằng một ảnh.
- Radial gradient brush – Vẽ một gradient theo một hình tròn. Mặc nhiên, Hình tròn này có tâm nằm giữa đối tượng được tô màu.
- Solid color brush – Tô màu đối tượng bằng một màu duy nhất.
- Video brush – Vẽ một vùng bằng một đoạn video.
Dưới đây là ví dụ cho từng cái:
Đối với các bút vẽ dạng Video, phải đảm bảo rằng file video được đặt trong thư mục ClientBin trên website của bạn.
Tiếp tục tạo chiếc đồng hồ, chúng ta sẽ bắt đầu với một hình ellipse đơn giản với chiều cao và rộng là 200. Thuộc tính Fill được áp dụng bút vẽ LinearGradientBrush
Đoạn lệnh trên sẽ hiển thị hình sau:
Hãy thêm một hình tròn nhỏ ở giữa cộng thêm 2 nhóm 3 đoạn thẳng màu đỏ để tạo ra kim giờ và kim phút.
Cuối cùng, chúng ta sẽ lập trình để tạo ra các số chỉ ra các con số bằng cách thêm vào các TextBlock. Chúng ta làm điều này bằng cách tính toán vị trí X và Y theo đường tròn với một khoảng là 85 pixel, Mỗi số nằm cách nhau 30 độ. Số 1 sẽ bắt đầu tại vị trí 300 độ.
Đây là kết quả cuối cùng:
Leave a Reply