intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Silverlight tiếng việt

Chia sẻ: Trần Ngọc Sang | Ngày: | Loại File: PDF | Số trang:83

142
lượt xem
48
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giao tiếp HTTP và bảo mật trong Silverlight Silverlight cho phép HTTP / HTTPS giao tiếp với các dịch vụ lưu trữ trên máy chủ web với cả hai trường hợp bên trong và bên ngoài tên miền của bạn được lưu trữ trên cơ sở ứng dụng Silverlight. Chủ đề này thảo luận về một số kịch bản HTTP giao tiếp và làm thế nào để bạn có thể kích hoạt các kịch bản.

Chủ đề:
Lưu

Nội dung Text: Silverlight tiếng việt

  1. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT 1 V ì sao lại có Silverlight? Sự khó khăn của các doanh nghiệp khi xây dựng chiến lược Web Ngày nay khi phát triển các ứng d ụng trên web các doanh nghiệp phần mềm thường đau đ ầu với nhữ ng khó khăn về sự hỗ trợ trên trình duyệt và hệ điều hành. Điều họ muốn là với nhữ ng ngôn ngữ và công cụ p hát triển đ ã vố n quen thuộc từ trước đ ến giờ đều có thể làm cho họ những ứng d ụng chạy tố t trên mọi nền tảng, mọ i trình duyệt. Silverlight ra đ ời như mộ t công nghệ phù hợp cho phép họ làm được những việc như thế. Nếu bạn đã quen thu ộc với công nghệ .Net Framework thì khi tiếp cận với Silverlight bạn sẽ tích kiện được rất nhiều thời gian và chi phí cho công nghệ web mới Nhu cầ u cầ n thiết của thế giới đa phương tiện Các công nghệ p lug-in trên web trước đây không cho phép bạn truyền tải những d ữ liệu hình ảnh chất lượng cao như 720p HDTV, Trong khi chất lượng đường truyền mạng ngày nay đang ngày càng tố t hơn và nhu cầu đ ược xem những video chất lượng cao cũng tăng lên thì sự ra đ ời củ a Silverlight đã đem đến cho người đam mê thế giới đa phương tiện một sự thỏa mãn thật sự. 2 Silverlight là gì? Silverlight là mộ t dạng plug-in d ựa trên công nghệ của Microsoft .Net, nó độc lập với đa nền tảng và đa trình duyệt, nó cho phép phát triển các ứng dụ ng đa phương tiện đ ặc biệt là các ứ ng dụng trên web. Silverlight cung cấp một mô hình lập trình lập trình mềm dẻo và đồng nhất, nó hỗ trợ Ajax, Python, ngữ lập .Net như Visual basic, C#. Ruby và các ngôn trình Khả năng đa phương tiện của silverlight thể hiện ở mức độ truyền tải âm thanh và hình ảnh chất lư ợng cao mộ t cách nhanh chóng và hiệu qu ả trên tất cả các trình duyệt chính như Internet Explorer, Firefox, Safari.
  2. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Với việc sử dụ ng Expression Studio và Visual Studio, các nhà thiết kế và phát triển có thể hợp tác một cách hiệu quả hơn b ằng cách sử dụ ng chính kỹ năng của họ có hiện nay để làm phát triển các sản phẩm web tương lai “Light up the web”. 3 Các đặc tính của Silverlight Silverlight kết hợp nhiều công nghệ vào một nền tảng phát triển, nó cho phép bạn được lựa chọn nhiều công cụ và ngôn ngữ lập trình thích hợp để giải quyết bài toán của b ạn. Silverlight cung cấp các tính năng sau: Sự kết hợp của WPF và XAML. 3.1 Silverlight là một gói nhỏ của công nghệ Windows Presentation Foundation (WPF). Nó được mở rộ ng nhiều hơn các Element trong trình duyệt đ ể tạo giao diện người dùng. PWF cho phép bạn tạo ra đồ họa 3 chiều, hình ảnh đ ộng, đa phương tiện và nhiều tính năng phong phú khác trên máy khách. XAML (Extensible Application Markup Language) cung c ấp các cú pháp đánh dấu đ ặc trưng cho việc tạo các Element. Mở rộng cho ngôn ngữ kịch bản 3.2 Silverlight cung cấp việc mở rộ ng cho các ngôn ngữ kịch b ản (Javascript) ở một số các trình duyệt phổ biến để thể hiện việc trình bày giao diện và thao tác người dùng mộ t cách phong phú hơn. Sự tích hợp với các ứng dụng đã có 3.3 Silverlight tích hợp liền mạch với ngôn ngữ javascript và mã Ajax củ a ASP.Net để bổ sung các chức năng b ạn đã xây d ựng được. Bạn có thể tạo những tài nguyên trên nền máy chủ có trong ASP.NET và sử dụ ng các khả năng củ a Ajax trong ASP.NET để tương tác với tài nguyên trên nền máy chủ đó mà không làm gián đoạn người dùng. Sử dụng mô hình ngôn ngữ lập trình trên nền tảng .Net Framework và các công 3.4 cụ đ ể kết hợp. Bạn có thể tạo các ứng dụng trên nền tảng Silverlight và sử dụ ng các ngôn ngữ đ ộng như InronPython cũng như là các ngôn ngữ C# và Visual Basic. Bạn cũng có thể sử dụ ng các công cụ p hát triển như Visual Studio để tạo ứng d ụng trên nền tảng Silverlight Hỗ trợ mạng 3.5 Silverlight bao gồm các hỗ trợ cho HTTP qua TCP. Bạn có thể kết nố i tới các d ịch vụ củ a WCF, SOAP, ho ặc ASP.NET AJAX và nhận về các đ ịnh d ạng theo cấu trúc XML, JSON hay d ữ liệu RSS. Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ) 3.6 Điều này cho phép b ạn truy cập dữ liệu bằng cách sử dụng cú pháp trực quan tự nhiên và mạnh mẽ, được gõ bởi các đố i tượng có trong các ngôn ngữ .Net Framework. 2
  3. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions 4 K iến trúc tổ ng thể và các mô hình lập trình của Silverlight Kiến trúc và các thành phần 4 .1 Về cơ bản Silverlight là mộ t nền tảng thố ng nhất của nhiều thành phần khác nhau. Tuy nhiên chúng tôi nhóm lại các thành phần chính củ a silverlight vào bảng dưới đây. Thành phầ n Diển tả Nền tảng trình bày cơ sở Các thành phần và dịch vụ hướng tới giao diện người dùng và tương tác người dùng, bao gồm các control cho dữ liệu cho người dùng nhập, thiết bị đa phương tiện, quản lý phân quyền số, trình bày dữ liệu, đồ họa vector, chữ, hình ảnh động. cũng bao gồm XAML đ ể đặc tả việc bố trí giao diện Là một gói nhỏ trong .Net Framework, bao gồm các thành phần và cá thư viện, kể .Net Framework cho cả tương vi ệc tương tác dữ liệu, khả năng mở rộng các control, mạng, garbage silverlight collection, và CLR Cài đặt và cập nhật Là thành phần để sử lý các tiến trình cài đặt làm sao để đơn giản hóa cho lần cài đặt đầu tiên, tiếp sau đó chỉ cung cấp cơ chế tự đ ộng cập nhật và tương tác ở mức thấp. Dưới đây là hình ảnh mô tả nhữ ng thành phần trong kiến trúc của Silverlight cùng với các thành phần và d ịch vụ liên quan khác. Core Presentation Components: Mô tả Tính năng Xử lý dữ liệu đầu vào từ các thiết bị phần cứng như bàn phím, chuột, bảng vẽ Dữ liệu vào (input) ho ặc các thiết bị đầu vào khác 3
  4. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Trình bày giao diện Trình bày vector và các đồ hoạ ảnh bitmap, ảnh động, và văn b ản người dùng (UI Rendering) Thiết bị nghe nhìn Các tính năng phát và quản lý một vài thể loại file âm thanh và hình ảnh như (Media) .WMP và .MP3 Hỗ trợ mở rộng cho các control để có khả năng tùy chỉnh về kiểu dáng và Controls khuôn mẫu Xếp đặt Layout Cho phép khả năng xếp đặt vị trí động các thành phần giao diện người d ùng Trình bày d ữ liệu Cho phép việc kết nối dữ liệu của các đối tượng và các thành phần giao diện người d ùng (Data Binding) Khả năng Quản lý phân quyền số DRM Cung cấp trình phân tách cho XAML XAML Các lập trình viên có thể tương tác với thành phần nền tảng trình bày cơ sở trên đây bằng cách sử dụng XAML để đ ặc tả. XAML là mộ t yếu tố quan trọ ng nhất trong việc tương tác giữa .Net Framwork và các kiểu trình bày Layout, ngoài ra các lập trình viên cũng có thể sử dụng cơ chế qu ản lý code bên trong để thao tác với lớp trình bày .Net Frame work for Silverlight: Mô tả Tính năng Hỗ trợ ngôn ngữ truy vấn tích hợp (LINQ) và LINQ với đặc tả XML, dễ dang xử lý việc tích hợp và làm việc với dữ liệu từ nhiều nguồn khác nhau. Hỗ trợ Data việc sử dụng XML và các lớp biên đổi hóa (serialization) để xử lý dữ liệu Thuộc thư viện của .Net Framework, nó cung cấp các chức năng lập trình chủ yếu như việc xử lý chuỗi, biểu thức chính quy, đầu vào và đầu ra, ánh xạ, tập Base class library hợp và toàn cục hóa. Cung cấp các tính năng để đơn giản hóa việc truy cập dữ liệu từ xa. Cơ chế Window này bao gồm một đối tượng trình duyệt, HTTP request và HTTP Response, Communication Foundation RSS, JSON, POX, và các SOAP (WCF) Cung cấp việc quản lý bộ nhớ, dọn dẹp bộ nhớ thừa, xử lý ngoại lệ… Common language runtime (CLR) Cung cấp các control giầu tính năng như Button, Calendar, CheckBox, Windows Presentation DataGrid, DatePicker, HyperlinkButton, ListBox, RadioButton, and Foundation controls ScrollViewer. (WPF) Hỗ trợ việc biên dịch và thi hành với tính năng động của các ngôn ngữ kịch Dynamic language b ản như Javascript và IronPython cho các chương trình trên nền tảng runtime (DLR) Silverlight. Các mô h ình lập trình của silverlight 4.2 Ở phiên b ản Silverlight 1.0 cung cấp cho bạn duy nhất mộ t mô hình lập trình là Javascript API, cho đến phiên b ản Silverlight 2.0 đ ã cung cấp cả hai mô hình lập trình là Managed API và Javascript API. Trong khi Javascipt API chỉ cho phép bạn gõ mã lệnh Javascript để tương tác với trình duyệt thì Managed API đã sử dụng được cơ chế làm việc củ a Common Language Runtime (CLR) và kể cả D ynamic Language Runtime (DLR) để b iên d ịch và thi chương trình code (C#, VB…) củ a bạn. 4
  5. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions 4.2.1 Javascript API Trong một chương trình silverlight nhúng theo kiểu Javascript API, nó tải chỉ mộ t trang XAML đơn lẻ thay vì tải một gói ứng dụng. Trang XAML này có thể bao gồ m các tham chiều URI từ những ngu ồn bên máy chủ khác như là các đoạn video và hình ảnh. Silverlight nhúng sử dụ ng XAML để tạo mộ t cây đố i tượng cái mà bạn có thể thao tác lập trình với javascript lưu trữ bên trong mộ t trang HTML Javascript API không cung cấp một mô hình ứng dụng có khả năng hỗ trợ các ứng dụng tổ hợp với sự đ iều hướng bên trong. Tuy nhiên nó cho phép làm những kịch bản theo kiểu Splash screan. Bạn cũng có thể làm các sự điều hướng trong Javascript API bằng cách tải lại trang XAML mới ho ặc tải lại cả trang web đó trong trình duyệt. 4.2.2 Managed API Trong lập trình silverlight theo kiểu Managed API, bạn có thể thao tác lập trình vớ i cả file XAML và file code bên trong. Khi mộ t Silverlight nhúng tải file XAML, nó sẽ tạo một cây mô hình cái mà b ạn cũng có thể gõ bằng các mã lệnh bên trong ( thường là C#, Visual basic…). 5 K hả năng hỗ trợ trình duyệt, hệ điều hành và các công nghệ liên quan Hỗ trợ củ a h ệ điều hành và trình duyệt được mô tả ở b ảng dưới đây 5.1 Internet Internet Firefox 1.5, 2.x, Safari 2.x Operating system Explorer 7 Explorer 6 a nd 3.x a nd 3.x Windows Vista có — có — Windows XP SP2 có có có — Windows XP SP3 có có có — Windows 2000 — có — — Windows Server 2003 có có có — (excluding IA-64) Mac OS 10.4.8+ (PowerPC) — — — — Mac OS 10.4.8+ (Intel-based) — — có Có Các công nghệ và công cụ liên quan của silverlight. 5.2 Microsoft Expression Blend: Sử dụng công cụ này b ạn b ạn có thể tạo và thay đ ổi cách xắp xếp trình bày Layer của ứng dụng bằng cách thao tác đến canvas và control trong XAML, làm việc với các chứ c năng đ ồ họa, Lập trình vớ i ngôn ngữ Javascript. Visual Studio 2008 : Visual Studio cung cấp các công cụ hiệu qu ả cho việc phát triển các ứng dụng có hỗ trợ thao tác code bên tron. Tất cả các phiên b ản đ ã có của Visual Studio đ ều có khả năng hỗ trợ Silverlight,Tuy nhiên ở phiên bản mới này nó còn hỗ trợ các tính năng đ ặc biệt hơn như bao gồm khả năng IntelliSense, debugging và các template cho việc tạo mới một ứng d ụng Silverlight. ASP.NET AJAX: Bao gồm tập các Control, Service, và các thư viện cần thiết cho việc tạo và tương tác với nền ứng dụng web 5
  6. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Microsoft ASP.NET 3.5 Extensions Preview: Công nghệ này cung cấp chức năng thêm để việc tăng cường các ứng dụng ASP.NET AJAX. Nó bao gồm 2 control sử dụng hữu ích cho việc xây dựng ứng dụ ng nền tảng silverlight cũng như là mộ t phần củ a ứng dụng ASP.NET: - ASP.NET MediaPlayer Server Control - ASP.NET Silverlight Server Control Internet servers: Bao gồm IIS (Microsoft Internet Information Services), và Apache Web server Microsoft Windows Communication Foundation (WCF) services. 6 H ướng dẫn cài đặt và sử dụng công cụ Silverlight 2 trên Visual studio 2008 Các bước cài đặt công cụ silverlight 2 6 .1 - Tải file Silverlight_Tools.exe có trên trang: http://www.microsoft.com/downloads/details.aspx?familyid=C22D6A7B-546F-4407-8EF6- D60C8EE221ED&displaylang=en - Bạn phải chắc chắn rằng máy tính củ a bạn đã cài đặt Visual Studio 2008 SP1 - Chạ y file Silverlight_Tools.exe, chờ khoảng 1 phút đ ể hiện thị Silverlight tools installation Winzard - Bấm next để đ ến bước 2, tích chọ n “I have read an accept the license terms”. - Bấm Next để hệ thống tự động kiểm tra tương thích( lưu ý: phải đóng hết các trình duyệt web) 6
  7. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Để hệ thống cài đ ặt và hoàn thành - 7 Các ví d ụ thực hành Chương trình đ ầu tiên “Hello World” 7 .1 - Tạo mới một Project: chọn File -> New -> Proeject - Một cửa sổ mới “New Project” hiển ra. Chọn Visual C# (hoặc Visual basic) trong Project types, chọn Silverlight. Phía b ên phải cửa sổ cho phép b ạn chọn các Templale 7
  8. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions - Chún ta chọn Silverlight Application trong Templates - Đặt tên chương trình đ ầu tiên là “HelloWorld”, tùy chọn Location, bấm OK - Bạn có thể chọn Project Type theo mặc định trong hội thoại Add Silverlight application, bấm OK - Solution mới được tạo ra với 2 project: Silverlight project và web project( dùng đ ể nhúng silverlight tạo bởi silverlight project) Trong thư mục ClientBin của web project (HelloWorld.Web) chứa ứng dụng silverlight đư ợc đóng gói dưới dạng file HelloWorld.xap của project silverlight (HelloWorld) 8
  9. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Toàn bộ màn hình ứng dụng đầu tiên của bạn được nhìn thấy như sau - Chúng ta làm 2 phương pháp một là viết code C# trong code ứng dụng, hai là viết trực tiếp trong XAML 7.1.1 Viết chương trình b ằng Code C# - Trong file Page.xaml.cs chúng ta bắt đầu với việc tạo một nút theo những dòng lệnh dưới đây // Khai bao button Button myButton; public Page() { InitializeComponent(); // Khởi tạo button myButton = new Button(); //Xác định các thuộc tính cho myButton myButton.Content = "Click Me"; myButton.Height = 25; myButton.Width = 100; myButton.Margin = new Thickness(10, 10, 0, 0); //Đưa myButton vào LayoutRoot LayoutRoot.Children.Add(myButton); Để tạo sự kiện cho một nút chúng ta cần thêm những dòng lệnh sau vào - //thêm phương thức xử lý sự kiện cho myButton myButton.Click += new RoutedEventHandler(myButton_Click); void myButton_Click(object sender, RoutedEventArgs e) { //Hiển thị thông điệp trên trình duyệt System.Windows.Browser.HtmlPage.Window.Alert("Hello Silverlight World!"); } - Bấm F5 để chạy chương trình 9
  10. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions 7.1.2 Viết chương trình b ằng XAML Lưu ý , với cùng project trên, muốn viết đ ặc tả b ằng XAML tương đương ta cần xóa bỏ phần mã trình C# cũ đi, vì C# và XAML không thể cùng sinh một đố i tượng. Trong file Page.xaml ta thêm đoạn mã sau - Gán sự kiện xử lý khi click - Bấm F5 để chạy ứng dụng. Cả hai phương thức viết trên đều cho ra mộ t kết qu ả như hình vẽ sau 8 Tài liệu tham khảo - Silverlight Deverloper center: http://msdn.microsoft.com/en-us/library/bb404708(VS.95).aspx - Website chính của Silverlight: http://silverlight.net/ 10
  11. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions CHƯƠNG II: XAML - Extensible Application Markup Language 9 Tổng quan về XAML 1 .1 XAML là gì XAML được viết tắt bởi cụm từ: Extensible Application Markup Language là một ngôn ngữ dạng khai báo. Bạn có thể tạo ra các phần tử đồ họa(UI) với những khai báo thông qua thẻ trong XAML. Sau đó bạn có thể dùng file mã lệnh tách biệt của nó(code-behind) đ ể trả về những sự kiện và điều khiển những đối tượng mà bạn đã đ ịnh nghĩa trong XAML. Nó là một ngôn ngữ mô tả dựa trên XML là rất trực quan để xây dựng giao diện từ những b ước phác thảo cho tới sản xuất sản phẩm, đặc biệt hữu ích cho đối tượng có kinh nghiệm thiết kế website và kỹ thuật. 1 .2 Khai báo đối tượng Có hai cách để khai báo đối tượng trong XAML: 1.2.1 Khai bao trực tiếp: Sử dụng thẻ đóng mở để khai báo một đối tượng giống như là một phần tử XML. Bạn cũng có thể sử dụng cú pháp này để khai báo đối tượng gốc (root object) hoặc để xét các giá trị các thuộc tính. 1.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. Bạn có thể sử dụng cú pháp này để thiết lập giá trị của thuộc tính.Thông thường, điều này có nghĩa là chỉ những thuộc tính mà được hỗ trợ bởi đối tượng mới có thể sử dụng được phương pháp này. 1 .3 Thiết lập đặc tính cho đố i tượng Có những cách sau để khai báo đặc tính cho đối tượng: 1.3.1 Sử dụng cú pháp theo thuộ c tính Dưới đây là ví dụ xét giá trị cho các thuộc tính: Width, Height, Fill của đối tượng Rectangle: 1.3.2 Sử dụng cú pháp theo đặc tính của thành phần(element): Dưới đây là ví dụ xét đặc tính Fill theo cách này cho đối tượng Rectangle: 1.3.3 Sử dụng cú pháp theo nộ i dung 11
  12. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Dưới đây là ví dụ xét đặc tính Text cho đối tượng TextBlock(Giống như đối tượng Label trong Winform, Webform): Hello! 1.3.4 Sử dụng theo mộ t tập hợp Đây là một trường hợp khá thú vị trong XAML, bởi có những cách khác nhau để thể hiện tập hợp này. Hơn nữa nó có thể xuất hiện ở phần đầu tiên của XAML cho phép bạn xét những đặc tính chỉ đọc (read - only) của đối tượng. Dưới đây là ví dụ xét đặc tính theo những cách khác nhau sử dụng theo kiểu tập hợp. Cách 1: Cách 2: Cách 3: Ngoài ra, có những đặc tính mà chúng có những tập hợp đặc tính nhưng chúng được xác định như là đ ặc tính nội dung của lớp. Trong trường hợp này ta xét đến đặc tính GradientStops được xử dụng ở trên. Bạn có thể loại bỏ đặc tính này và sẽ có kết quả như sau: 1 .4 Root elements và namespace trong XAML Một file XAML chỉ đ ược có duy nhật một Root element và phải thỏa mãn cả hai tiêu chí sau: well- formed XML(có mở và đóng thẻ) và valid XML(tuân thủ theo Document Type Definition(DTD)). Ví dụ dưới đây cho Root element điển hình của XAML cho Silverlight với Root element là thành phần UserControl. 12
  13. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions 1 .5 Sự kiện XAML là một ngôn ngữ khai báo cho đối tượng và những đặc tính của chúng, nhưng nó cũng bao gồm những cú pháp cho sự kết hợp sự kiện cho đối tượng trong những thẻ đánh dấu. Bạn chỉ rõ tên của sự kiện như là một thuộc tính tên trên đ ối tượng mà sự kiện đ ược nghe. Về giá trị của thuộc tính, bạn chỉ rõ tên của hàm nghe sự kiện mà bạn định nghĩa ở phần code-behind ho ặc ở phần javascript. Việc có khai bao hay không đặc tính x:Class ở thẻ root trong XAML có ảnh hưởng đến việc xử lý sự kiện. Nếu bạn khai báo x:Class tức là việc xử lý sự kiện của bạn sẽ được thực hiện trong code-behind, trường hợp này thường xuất hiện trong kiểu lập trình Managed API (chứa trong silverlight 2.0). Còn ngược lại thì việc xử lý sự kiện của bạn được thực hiện ngay trong thẻ Javascript chứa trong HTML, trường hợp này thường xuất hiện trong kiểu lập trình JavaScript API (chứa trong Silverlight 1.0). - Ví dụ d ưới đấy chỉ rõ cho bạn thấy cách tạo một sự kiện trong trường hợp kiểu lập trình Manged API Do ạn mã trên, trong thẻ root chúng ta đã khai báo đ ặc tính x:Class=" Chapter2.Page", điều này có nghĩa trong chương trình của chúng ta có một file chứa class Chapter2.Page. Class này sẽ đảm nhiệm việc xử lý các sự kiện đã khai báo ở file XAML (Page.xaml). Trong thẻ chúng ta tạo thêm một nút và khai báo trong nút đó một sự kiện Click="Button_Click".Sự kiện này sẽ đ ược xử lý ở trong code-behind như sau namespace Chapter2 { public partial class Page : UserControl { public Page() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { //Xu ly su kien Button click o day MessageBox.Show("Xin chao!"); } } } - Còn ví dụ d ưới đây sẽ chỉ rõ cho bạn thấy cách tạo một sự kiện tro ng trường hợp kiểu lập trình JavaScript API 13
  14. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Do ạn mã trên, trong thẻ root chúng ta không khai báo đặc tính x:Class. Việc xử lý sự kiện sẽ được thực hiện ngay trong trang HTML có chứa chương trình silverlight này. function Button_Click() { alert("Xin chao!"); } 10 Các namescope trong XAML Trong Silverlight, một XAML namescope lưu trữ quan hệ giữa những tên từ khóa của XAML đ ã đ ược định nghĩa của đối tượng và những khởi tạo tương đương của nó. Điều này cũng tương tự như ý nghĩa của “namescope” trong các ngôn ngữ lập trình và công nghệ khác. XAML namescope được tạo ra trong quá trình d ịch mã XAML và trong quá trình tạo hình đối tượng. Những tên mà được tạo trong namescope sau đó được sử dụng ở code-behind thao tác lúc chạy chương trình để truy cập tới đối tượng được tạo bởi quá trình d ịch file XAML. Để biết thêm chi tiết các bạn có thể tham khảo tại địa chỉ: http://msdn.microsoft.com/en-us/library/cc189026(VS.95).aspx 11 Sử d ụng XAMLReader.Load Sử dụng JavaScript API cho Silverlight, để tạo đối tượng trong lúc thực thi ứng dụng bắt buộc phải sử dụng qua phương thức CreateFromXaml. Sử dụng manged API những class hoặc cấu trúc (structure) cho phép có thêm các thành phần bên trong thực sự đ ược khởi tạo nếu nó có trong cây thành phần của Silverlight. Trong hầu hết các trường hợp mà bạn muốn khởi tạo đối tượng trong lúc thực thi, bạn có thể đơn giản triệu gọi constructor của class liên quan tới nó. Tuy vậy, Bạn vẫn có thể tạo đối tượng thông qua đầu vào là XAML thông qua managed API, qua việc sử dụng phương thức XamlReader.Load. Phương thức Load trong managed API là tương ứng với CreateFromXaml trong JavaScript API, cũng giống như CreateFromXaml, đầu vào cho phương thức Load là những chuỗi và đầu ra là những đối tượng mà có thể thêm vào mạng đối dạng cây của Silverlight. XamlReader đơn giản được thiết kể để đọc xml “XmlReader” có trong Silverlight cũng như trong các công nghệ khác của Microsoft . XamlReader là lớp được xây dựng theo kiểu static với những phương thức tạo đối tượng; nó tạo đối tượng song song với việc xử lý XAML để sinh ra trong lúc thực thi(run- time) những cây đối tượng từ XAML trong Silverlight Các b ạn cần lưu ý những điểm sau khi sử dụng phương thức Load: - Nội dung chuỗi XAML phải định nghĩa một phần tử gốc (root element) - Nội dung chuỗi XAML phải là well-formed XML, và valid XML 12 X AML và các Custom class XAML hỗ trợ khả năng có thể định nghĩa tùy chỉnh lớp(custom class) hoặc cấu trúc(structure) trong bất kỳ ngôn ngữ runtime nào (CLR), và sau đó truy cập vào class thông qua thẻ đánh dấu của XAML(XAML markup), bao gồm cách sử dụng hỗn hợp của những thẻ Silverlight đã định nghĩa trong 14
  15. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions XAML và những thẻ XAML mà tham chiếu tới custom class tương ứ ng của nó (Mỗi custom class chứa tương ứng 2 file .cs và .xaml, ví dụ: myclass.xaml và myclass.xaml.cs) Custom class trong ứng dụng hoặc Assemblies 12.1 Custom class dùng trong XAML có thể định nghĩa theo cách riêng biệt: - Trong code-behind được đóng gói trong ứng dụng Silverlight - Như là một class được định nghĩa trong một assembly tách biệt, như là một thư viện thực thi ho ặc DLL Mỗi cách trên đ ều có những ưu và nhược điểm như sau: - Ưu điểm của việc tạo class và đóng gói riêng biệt là khả năng có thể chia sẻ và dùng được trong nhiều ứng dụng Silverlight khác. Đồng thời là khả năng quản lý phiên bản của control dễ d àng hơn và nó làm cho nó có khả năng tạo ra class mà b ạn dự dịnh sử dụng như là một root element trong trang XAML. - Ưu điểm của việc tạo custom class trong ứng dụng là về mặt kỹ thuật tương đối đơn giản và giảm thiểu kích cỡ và kiểm tra khi bạn gặp vấn đề trong dự án Silverlight dựa trên code-behind. Tuy nhiên có điểm hạn chế là b ạn không thể dùng custom class như là một root element. Bạn phải tham chiếu custom class của bạn qua một assembly khác hoặc là giới hạn subclass sử dụng User Control hỗ trợ code-behind trong dự án Silverlight của bạn. - Dù là đ ịnh nghĩa trong cùng một assembly hay assembly khác nhau, custom class phải đ ược ánh xạ qua CLR namespace và XML namespace để được tham chiếu trong XAML Ràng buộ c đ ể Custom Class trở thành thành phần đố i tượng trong XAML 12.2 Để đ ược tạo đối tượng như là một thành phần đối tượng của XAML, custom class của bạn phải đáp ứng các yếu tố sau đây: - Custom class phải để public và hỗ trợ khởi tạo mặc định không có tham số truyền vào (default constructure ‘parameterless’). - Custom class không phải là class lồng(class lồng và dấu chấm ‘.’ ở cú pháp của nó ảnh hưởng tới những đặc điểm của Silverlight như là các property kèm theo. Ngoài ra đ ể đối tượng của bạn như là một thành phần đối tượng củ a XAML, b ạn có thể cho phép sử dụng những property cho các public property của Custom class của bạn điều này làm cho Custom class của bạn như là một kiểu property. Điều này bởi vì bây giờ đối tượng có thể được khởi tạo giống như một thành phần đối tượng và có thể xét thuộc tính cho nó như là một property Yêu cầu đối với sự kiện trong XAML đối với Custom class 12.3 Để sử dụng cú pháp theo kiểu thuộc tính để tương tác với sự kiện trong XAML, sự kiện phải được public trong class mà hỗ trợ constructure mặc định, hoặc sự kiện phải đ ược định nghĩa trong class trừu tượng và sau đó sự kiện có thể truy cập được qua những class kế thừa. 13 X AML và Type Converter 14 Layout 15
  16. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Khi bạn xây dựng ứng dụng Silverlight, một trong những điều bạn cần làm đ ầu tiên đó là việc sẽ bố trí giao diện đồ họa của bạn như thế nào. Silverlight cung cấp cho bạn 3 kiểu bố trí khác nhau, đó là: Canvas, StackPanel và Grid. 14.1 Canvas Định nghĩa một khu vực mà trong đó bạn có thể chỉ ra vị trí của từng đối tượng thành phần bằng cách sử dụng các tọa độ tham chiếu. Bạn có thể sử dụng lồng các Canvas với nhau và những thành phần b ên trong của Canvas phải là một UIElement. Trong nhiều trường hợp thì Canvas chỉ đóng vai trò như một đối tượng để chứa đựng những đối tượng khác và không có một thuộc tính hiển thị nào. Một Canvas sẽ không được hiển thị nếu nó có một trong những thuộc tính sau đây: - Thuộc tính Height xét giá trị 0 - Thuộc tính Width xét giá trị 0 - Background bằng null hoặc là Nothing ở VS Basic - Opacity xét giá trị 0 - Visibility bằng Visibility.Collapsed - Một trong những Canvas ở mức độ cao hơn (parrent) của nó không đ ược hiển thị. Ví dụ d ưới đây chỉ ra là hình chữ nhật được cách trái 30pixel và cách trên 30pixel 14.2 StackPanel Sắp xếp những thành phần b ên trong nó thành một dòng và có thể hiển thị theo hai kiểu ngang hoặc là dọc. Giá trị mặc định được gán chọ thuộc tính Orientation là chiều dọc (Vertical) và giá mặc định được xét cho hai thuộc tính HorizontalAlignment và VerticalAlignment là Stretch Ví dụ d ưới đây hướng dẫn cách tạo những những đối tượng trong StackPanel 16
  17. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions 14.3 Grid Định nghĩa dạng lưới phức tạp bao gồm những d òng và cột. Mặc định Grid chứa một cột và một dòng. Để định nghĩa nhiều cột hoặc dòng chúng ta dùng ColumnDefinitions và RowDefinitions. Mỗi ColumnDefinition và RowDefinition trong ColumnDefinitions và RowDefinitions xác đ ịnh một dòng hoặc cột. ColumnDefinition và RowDefinition cũng định nghĩa kích thước của mỗi cột và dòng sử dụng đối tượng GridLength Ví dụ: Dưới đây là ví dụ dùng Grid để lên một thiết kế giao diện cơ b ản. 17
  18. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Thêm vào một vài đối tượng qua code-behind C# public Page() { InitializeComponent(); LayoutDesign(); } private void LayoutDesign() { //Tạo Stackpanel cho ListBox Control StackPanel DeptStackPanel = new StackPanel(); DeptStackPanel.Margin = new Thickness(10); LayoutRoot.Children.Add(DeptStackPanel); Grid.SetColumn(DeptStackPanel, 1); Grid.SetRow(DeptStackPanel, 1); TextBlock DeptListHeading = new TextBlock(); DeptListHeading.Text = "Department"; ListBox DeptList = new ListBox(); DeptList.Items.Add("Finance"); DeptList.Items.Add("Marketing"); DeptList.Items.Add("Human Resources"); DeptList.Items.Add("Payroll"); DeptStackPanel.Children.Add(DeptListHeading); DeptStackPanel.Children.Add(DeptList); //Tạo StackPanel cho các nút StackPanel ButtonsStackPanel = new StackPanel(); ButtonsStackPanel.Margin = new Thickness(10); ButtonsStackPanel.Orientation = Orientation.Horizontal; ButtonsStackPanel.HorizontalAlignment = HorizontalAlignment.Center; LayoutRoot.Children.Add(ButtonsStackPanel); Grid.SetColumn(ButtonsStackPanel, 0); Grid.SetRow(ButtonsStackPanel, 2); Grid.SetColumnSpan(ButtonsStackPanel, 2); Button BackButton = new Button(); BackButton.Content = "Back"; BackButton.Height = 30; BackButton.Width = 100; 18
  19. Infoway CHƯƠNG I: TỔNG QUAN VỀ SILVERLIGHT Solutions Button CancelButton = new Button(); CancelButton.Content = "Cancel"; CancelButton.Height = 30; CancelButton.Width = 100; Button NextButton = new Button(); NextButton.Content = "Next"; NextButton.Height = 30; NextButton.Width = 100; ButtonsStackPanel.Children.Add(BackButton); ButtonsStackPanel.Children.Add(CancelButton); ButtonsStackPanel.Children.Add(NextButton); BackButton.Margin = new Thickness(10); CancelButton.Margin = new Thickness(10); NextButton.Margin = new Thickness(10); } } 19
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2