Thành phần mở rộng là một khái niệm của ngôn ngữ XAML, thường được sử dụng trong sự thi hành của Silverlight XAML. Trong cú pháp thuộc tính của XAML, cặp dấu ngoặc ({ và }) thường dùng để chỉ phần mở rộng do XAML qui định. Cách sử dụng này giúp cho những xử lý của XAML tránh được những xử lý chung của giá trị thuộc tính cũng như là những chuỗi khác hoặc những giá trị chuỗi thường thay đổi. Thay vào đó, một kiểu phân tách gọi code diễn ra ngay sau phần mở rộng nhằm giúp cho việc khởi tạo một cây đối tượng.
Silverlight hỗ trợ ba cách mở rộng đã được định nghĩa bên dưới Namespace XML và được hiểu ngầm trong phân tích cú pháp XAML. Bao gồm: Binding, StaticResource, và TemplateBinding. Binding hỗ trợ việc liên kết data. StaticResource hỗ trợ việc tham chiếu tài nguyên đã được khai báo trong một ResourceDictionary. TemplateBinding hỗ trợ những control Template trong XAML mà có thể tương tác với thuộc tính code của đối tượng Template. Silverlight cũng thi hành một sự mở rộng mà được khai báo bên trong Namespace XAML x:Null.
Ví dụ:
<Canvas.Resources>
<Style TargetType="Border" x:Key="PageBackground"> <Setter Property="BorderBrush" Value="Blue"/> <Setter Property="BorderThickness" Value="5"/> </Style>
SVTH: Thân Hoàng Lộc Trang 67 Nguyễn Anh Việt
Lưu Xuân Việt
...
<Border Style="{StaticResource PageBackground}"> ...
</Border>
V. EVENTS
XAML là một ngôn ngữ khai báo cho đối tượng và những thuộc tính của đối tượng, nhưng nó cũng bao gồm một cú pháp cho việc kèm theo những event handler tới đối tượng trong phần khởi tạo. Bạn có thể chỉ rõ tên event như là một tên thuộc tính trên đối tượng mà có event xảy ra. Với những giá trị thuộc tính, bạn có thể chỉ định rõ tên của những hàm event-handler mà bạn khai báo trong code. Xử lý XAML sử dụng tên này tạo một mô tả đại diện trong cây đối tượng tải lên và thêm những handler tới danh sách handler bên trong.
Trong XAML, API thường sử dụng (managed hoặc JavaScript) ảnh hưởng tới kỹ thuật của chỉ định những event handler. API loại trừ lẫn nhau trên từng vi trí của trang XAML. Dấu hiệu cho mỗi API hiện hành là sự có mặt hay vắng mặt của x:lớp thuộc tính trên phần tử root của trang. Nếu x: lớp đã tồn tại, thì trang sử dụng managed API. Nếu x: lớp không tồn tại, trang sẽ sử dụng JavaScript API.
Trong managed API, event handler chỉ tồn tại trong file code-behind mà kết hợp với trang XAML hiện tại. Bởi vì những lớp riêng này từ XAML và code thỉ tham gia vào trong việc thêm vào một handler.
SVTH: Thân Hoàng Lộc Trang 68 Nguyễn Anh Việt
Lưu Xuân Việt
<Canvas xmlns=http://schemas.microsoft.com/client/2007 Loaded="onLoaded" />
Tên hàm onLoaded được khai báo bên trong file JavaScript. File JavaScript này kết hợp với HTML của trang chính thông qua tham số src của tag <SCRIPT> trong HTML.
<!-- Reference the JavaScript file where the event functions are defined
from the plug-in host HTML page. -->
<script type="text/javascript" src="eventfunctions.js"> ...
</script>