Blog chia sẽ kinh nghiệm lập trình và Technical VN. Nơi mà các bạn có thể học tập và tham khảo về những công nghệ mới nhất hiện nay về .NET
Thứ Ba, 26 tháng 5, 2015
On 17:54 by Tuan Pham in WPF-nangcao No comments
Phong cách thiết kế Material Design nhắm đến những đường nét đơn giản, sử dụng nhiều mảng màu đậm nổi bật, các đối tượng đồ họa trong giao diện dường như đang “trôi nổi” lên nhau. Ngoài ra, nó còn bao gồm cả những hiệu ứng chuyển động tự nhiên khi các nút, menu hiện diện trên màn hình. Tất cả đều nhằm mang lại cho người dùng trải nghiệm mới mẻ hơn, thú vị hơn và gần giống đời thực hơn. Nếu đang sử dụng Android L ắt hẳn các bạn sẽ thấy thích thú với ngôn ngữ thiết kế mới này, hôm nay tôi sẽ giới thiệu đến các bạn bộ thư viện giúp chúng ta mang ngôn ngữ Design này lên Windows nói chung và ứng dụng WPF nói riêng.
I> Material Design là gì?
Chúng ta có thể tưởng tượng các ứng dụng được xây dựng dựa trên ngôn ngữ Material Design giống như một tập hợp gồm nhiều tờ giấy chồng lên nhau, mỗi tờ có một màu và bản thân nó tồn tại như một lớp riêng. Các hiệu ứng đổ bóng của tờ này lên tờ khác cũng được mô tả cụ thể và quy tắc trong Material Design. Vì giấy là các đối tượng tự nhiên, có thực ngoài đời nên khi chúng xuất hiện, khi mở ra, khi di chuyển…đều phải có điểm xuất phát và kết thúc, không thể nào đột ngột có mặt và biến mất được. Lưu ý rằng các tờ giấy khác hoàn toàn với một hộp giấy vì thế các lớp phải có độ mỏng nhất định và không biến thành hình khối 3-D.
Ngoài ra, Google còn muốn các ứng dụng Material Design phải thật đơn giản, tinh gọn và không sử dụng các thành phần thừa, không bóng loáng kiểu 3-D và hiệu ứng ánh sáng phản chiếu. Theo hãng, việc xuất hiện của các nút, các menu thừa thải có thể gây rối cho người dùng, nó cũng chiếm không gian của nội dung chính và mọi chuyện sẽ càng tệ hơn khi app chạy trên các thiết bị nhỏ như đồng hồ thông minh.
II> Một ứng dụng Material Design tiêu chuẩn
- Sử dụng các màu nổi bật, thường có một mảng màu chủ đạo nằm ở cạnh trên ứng dụng
- Các biểu tượng phẳng, đơn giản nhưng dễ hiểu
- Menu, nút nhấn, chữ viết… có nhiều khoảng cách trắng nên trông thoáng đãng
- Có các hiệu ứng chuyển động tự nhiên, mượt mà, có tâm điểm và luôn có một nguyên tắc.
- Các button sẽ có cảm giác nổi lên trên các bề mặt khác và icon không cầu kỳ.
- Toàn bộ một ứng dụng luôn có một gam màu chủ đạo, nổi bật.

III> Mang Material Design lên WPF
Tại sao tôi không mang ngôn ngữ này lên Winform - bởi vì khả năng tùy biến của Winform quá kém và chúng ta bị hạn chế sự sáng tạo cũng như việc custom khá khó khăn. Dưới đây là một ứng dụng WPF dùng màu và các cách đổ bóng cũng như hiệu ứng được GG quy định.


Các bạn có thể tải về toàn bộ thư viện tại đây
Hoặc các bạn có thể tải về từ Nuget hai DLL sau
- MaterialDesignColors: chứa các mẫu Color do Google cung cấp tại đây, chúng ta chỉ việc chọn màu ưng ý.
Install-Package MaterialDesignColors
- MaterialDesignThemes: chứa các Template và style
Install-Package MaterialDesignThemes
Để biết cách sử dụng tôi sẽ hướng dẫn làm một Project cơ bản như sau.
- Tạo một project WPF Application và tiến hành Reference hai thư viện trên.
- Config để sử dụng được các Resource trong bộ thư viện trên với các lưu ý sau.
+ Chúng ta chỉ nên reference đến Resource nào mà mình muốn sử dụng, không nên reference tất cả.Lưu ý rằng các Color của Material Design có dạng
+ Sử dụng MergedDictionaries để gộp các Key dictionary có thể bị trùng
vì vậy bạn sẽ không thể dùng trực tiếp màu này cho các đối tượng như sau bởi Background nhận một thông số là SolidColorBrush
Thay vào đó chúng ta sẽ tạo riêng cho mình các resource tương ứng và refer đến màu của thư viện
App.xml
Như thế chúng ta đã xong phần refer đến bộ màu của Material Design, tiếp theo là khai báo bộ Style/Template.
App.xaml
MainWindow
Kết quả:

Tải về source tại đây, chúc các bạn thành công!
Đăng ký:
Đăng Nhận xét (Atom)
Search
Popular Posts
-
Phong cách thiết kế Material Design nhắm đến những đường nét đơn giản, sử dụng nhiều mảng màu đậm nổi bật, các đối tượng đồ họa trong giao ...
-
Hôm nay tôi sẽ giới thiệu với các bạn một Framework đến từ Microsoft - framework này không quá lớn nhưng là khá mạnh khi các bạn làm việc vớ...
-
WPF vượt trội hơn Winform về khoản Drawing , trong đó đặc biệt WPF hỗ trợ đồ họa rất tốt vì nó tương tác trực tiếp đến GPU. Hôm nay chúng t...
-
Hôm nay chúng ta sẽ tìm hiểu cách tạo ra các menu chuột phải trên ứng dụng WPF của mình. Ở bài này chúng ta xoay quanh việc tìm hiểu cách tạ...
-
Để dễ hiểu, các bạn hãy hình dung rằng: cùng một tập tin thực thi *.EXE nhưng bạn DoubleClick 10 lần cách quãng vào nó thì chuyện gì sẽ sảy ...
-
Trong bài viết trước tôi có giới thiệu về Extension Methods trong nguôn ngữ lập trình C#; hôm nay tôi sẽ nói về một vấn đề có ý nghĩa tương...
-
Hôm nay chúng ta sẽ thử đo xem thời gian query Data của "Foreach vs LinQ vs LinQasParallel" như thế nào. Tôi tạo một tool nhỏ để l...
-
Data Binding là kĩ thuật dùng để tạo gắn kết giữa phần giao diện ( UI ) và dữ liệu thông qua phần business logic hoặc giữa các đối tượng UI...
-
LOG4NET là một thư viện mã nguồn mở cho phép chúng ta tạo ra một hoặc nhiều tập tin log, kiểu log cũng như nội dung log một cách linh hoạt v...
-
Sau hai bài giới thiệu về Caliburn.Micro framework, hôm nay chúng ta sẽ cùng bắt tay vào làm một dự án nhỏ - HelloWorld. Step 1: Add referen...
0 nhận xét:
Đăng nhận xét