Chương 2 : Thiết kế giao diện của ứng dụng
I. XAML
1. XAML là gì?
XAML (eXtensible Application Markup Language) là một ngôn ngữ đánh dấu với cú pháp tương tự XML dùng để tạo các đối tượng .Net trong các ứng dụng WPF, Silverlight và WF. Mặc dù đây là những mảng đề tài lớn nhưng nếu bạn đã biết đến XML, sẽ không khó để làm quen với XAML.
XAML được dùng để tạo giao diện đồ họa cho ứng dụng thông qua các đối tượng của .Net hoặc do bạn tự định nghĩa. Do đó mỗi thẻ XAML phải ánh xạ và có tên tương ứng với một lớp.
Giống như các ngôn ngữ đánh dấu HTML, XML cho phép các thẻ lồng nhau. Điều này giúp bạn tạo ra các control đa dạng hơn, ví dụ như bạn có thể lồng một TextBox vào trong Button. Bên cạnh đó, các giá trị có kiểu dữ liệu cơ bản như chuỗi, số, màu,… mà bạn gán cho các thuộc tính của thẻ cũng phải được đặt trong cặp nháy kép.
2. Khai báo đối tượng:
2.1 Khai báo trực tiếp:
Sử dụng thẻ đóng và thẻ mở để khai báo một đối tượng giống như khai báo một phần tử trong XML. Ta có thể sử dụng cú pháp này để khai báo đối tượng gốc (root object) hoặc để set các giá trị cho thuộc tính.
2.2 Khai báo gián tiếp:
Sử dụng giá trị trực tiếp để khai báo một đối tượng. Ta có thể sử dụng cú pháp này để thiết lập giá trị của thuộc tính.
3. Thiết lập các thuộc tính cho đối tượng:
3.1 Sử dụng cú pháp theo thuộc tính:
Dưới đây là ví dụ để set các giá trị cho các thuộc tính: Weight, Height, Fill của đối tượng Rectangle:
<rectangle height="100" width="100" />
Trong Visual Studio cho phép chúng ta gán các thuộc tính cho các đối tượng bằng các thanh công cụ trong Properties Panel:
3.2 Sử dụng cú pháp theo đặc tính của thành phần:
Chẳng hạn set đặc tính Fill cho đối tượng Rectangle bằng cách này:
<rectangle height="100" width="100">
<rectangle.fill>
<solidcolorbrush />
</rectangle.fill>
</rectangle>
4. Root element và namespace trong XAML:
Một file XAML chỉ có một Root Element và thỏa mãn 2 tiêu chí : well-formed
XML (có thẻ đóng và thẻ mở) và valid XML (tuân thủ theo DTD).
Cấu trúc của 1 page XAML như sau:
<phone:phoneapplicationpage>
<!--LayoutRoot is the root grid where all page content is pl