My Opera is closing 3rd of March

Hoang Ha's Blog

Hoang Ha lives in HCMC, Viet Nam

Silverlight 2 Tutorial: Điều Khiển Sự Kiện

Trong Silverlight 2, mỗi lớp khai báo được hỗ trợ bởi sự quản lý mã hoặc không, bằng cách bao gồm (hoặc không) thuộc tính x:Class trong phần tử gốc của nó. Bài hướng dẫn này, thừa nhận rằng bạn đang làm việc trong mô hình quản lý mã, và thuộc tính x:Class đã được khai báo.

Khi bạn tạo một ứng dụng C# Silverlight, khai báo thuộc tính x:Class được mô tả như dưới đây:



Khai Báo Event Handlers

Có hai cách để khai báo event handlers trong Silverlight: trong XAML file hoặc trong code-behind. Nếu bạn khai báo event handlers trong XAML, bạn không thể thêm các tham số tới các phương thức. Đặc trưng, một sự khai báo event handlers trong XAML có thể giống như sau:



Ở đây, bạn đã khai báo một đối tượng Canvas và gán một event handler với tên "Canvas_Loaded" tới sự kiện Loaded của Canvas.

Chúng ta cũng khai báo một button trong XAML và thiết lập nội dung của nó với chuỗi "Hello".

Đoạn mã này xuất hiện trong Page.xaml file. Trong code-behind file, Page.xaml.cs, chúng ta phải thực thi event handler với tên Canvas_Loaded:



Thứ đầu tiên bạn phải chú ý là: tên của phương thức phải giống với tên đã được khai báo trong XAML file.

Thứ hai là phương thức này tuôn theo hình thức của tất cả .NET event handlers: nó trả về void và yêu cầu hai tham số: tham số đầu tiên có kiểu object và tham số thứ hai có kiểu EventArgs hoặc một kiểu dẫn xuất từ EventArgs; trong trường hợp này là RoutedEventArgs.

Sau khi thực thi event handler ở trên (khi Canvas được tải lên), nó nắm giữ button đã được khai báo trong XAML file và thay đổi nội dung của nó từ: "Hello" thành "Please push me":



Khai Báo Event Handlers Trong Mã

Tôi tin rằng sẽ là tốt hơn nếu chúng ta khai báo tất cả các event handlers trong code-behind. Nhưng đây chỉ là quan điểm cá nhân của riêng tôi.

Trong một số trường hợp, nếu bạn muốn khai báo đúng event handlers của bạn trong code-behind, Visual Studio tạo ra nó một cách dễ dàng. Cách phổ biến nhất đó là rằng buộc event handlers trong OnLoaded event handler, với event (Loaded) được rằng buộc trong Page’s constructor.

Để quan sát, bạn quay trở vào code-behind và remove event handler từ XAML. Lưu XAML file và mở code-behind.

Trong constructor, bạn đánh vào Lo. Intellisense sẽ pop up và đưa ra để giúp đỡ bạn tạo mã EventHandling, đưa ra sự kiên Loaded, mà nó là chính xác cái mà bạn muốn. Nó cũng mô tả kiểu của sự kiện như dưới đây:



Chúng ta sẽ thực thi một sự kiện Loaded với kiểu trả về là RoutedEventHandler. Nhấn tab để chấp nhận sự kiện Loaded và đánh vào += để thêm vào một delegate.(bạn có thể tìm hiểu về delegate và events trong các bài post về C# 2.0).

Intellisense sẽ hướng dẫn bạn thực hiện các bước tạo event handler, và nếu bạn cho phép, nó cũng sẽ tạo ra một phần của phương thức event handler. Sau cùng nó đặt con trỏ của bạn bên trong phương thức mà nó đã điền trước bằng một ngoại lệ (exception).



Bạn thêm hai điều khiển vào Canvas: một button ("myButton") và một checkbox ("rushOrder"), và tạo một Click event handler cho button và cả Checked, UnChecked event handler cho CheckBox.



RoutedEvents

Silverlight mở rộng kỹ thuật CLR event handling với RoutedEvents.

Các sự kiện CLR bình thường được bỏ qua nếu không có đối tượng nào đồng ý nó. Việc này trình bày một vấn đề cho WPF và các điều khiển Silverlight bởi vì một số điều khiển được tạo từ nhiều "pieces" như text, curves, shapes ...Ngoài ra, nhà phát triển đã cho phép và khuyến khích thêm một điều khiển vào bên trong một điều khiển khác.

Một nút nhấn có thể có text và một hình chữ nhật theo cùng trên một background. Nó đòi hỏi người phát triển đăng ký một mouse event handler cho text của nút nhấn và cho hình chữ nhật.



Dưới đây là hình ảnh bạn sẽ thấy sau khi chạy ứng dụng:



Chúng ta sẽ thu gọn hình mặt người Little Green và đaqtj nó và trong một nút nhấn. Điều này được thực hiện một cách dễ dàng; chỉ cần phân chia mọi giá trị trong kích thước của hình mặt người bằng 5 như để bắt đầu tạo ra một Very Little Green Man.



Chương trình sẽ trông giống như sau:



Hình mặt người bây giờ đã được đặt vào bên trong một nút nhấn. Chúng ta thực hiện điều này bằng cách tạo một điều khiển ghép bằng cách kết hợp một nút nhấn chuẩn và VLGM vào bên trong một Canvas, sau đó chúng ta có thể xem như một điều khiển đơn.



Sẽ có hai canvases xuất hiện ở đây:

- Canvas đầu tiên là một nút nhấn kết hợp mới mà nó sẽ chưa một Silverlight button và một Very Little Green Man được co lại.

- Canvas thứ hai giữ các phần của VLGM: các ellipses và path.

Silverlight 2 Tutorial: Tổng quan về Layout Controls Silverlight 2 Tutorial: Hiển Thị SQL Database Data Trong Một DataGrid Sử Dụng LINQ và WCF

Write a comment

New comments have been disabled for this post.

February 2014
M T W T F S S
January 2014March 2014
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28